[vue3.x]ref的使用

普通的应用

DOM 元素将在初始渲染后分配给 ref

因为 ref 本身是作为渲染函数的结果而创建的,在初始渲染时你不能访问它们——它们还不存在!

表单的主动提交

场景描述,将form表单设为组件,在父组件中,通过点击按钮,弹框modal 显示表单,点击modal的时候提交表单,因此需要代码控制点击modal提交按钮的时候提交form表单

form组件
self-form.vue

<a-form ref="formRef">
</a-form>
setup(){
const formRef = ref();const checkForm = () => {formRef.value.validate().then((res) => {console.info("submit valid success");emit("mysub", form);//这与父组件的名称需要一致 mysub}).catch((error) => {if (undefined != error.errorFields && error.errorFields.length > 0) {console.error("validate faild......................", error);} else {console.error("catch excute.......", error);}});};
return {
formRef,
checkForm
}
}

父组件

<a-modal @ok="confirmMoal">
<self-form ref="submitForm" @mysub="addOrEdit"></self-form>
</a-modal>
setup(){
const submitForm = ref();const valid = () => {//check the form valid ruleif (null !=submitForm.value) {submitForm.value.checkForm();}};const addOrEdit=()=>{
//submit form
}
return {
submitForm,
confirmMoal,
valid
}
}

注意对应的名称

v-for循环中对ref的应用

<template v-for="(item,index) in photos" v-bind:key="index">
<router-link class="bamboo-photo":ref="handleBox":to="item.path"@mousemove="e=>move(e,index)"@mouseleave="e=>leave(index)"@mouseover="e=>over(index)"><div class="reflection" :ref="handleRefl"></div><div class="element bg"><!-- <div class="number">28</div> --><div class="symbol">{{item.name}}</div><!-- <div class="details">Nickel<br />58.6934</div> --></div></router-link>
</template>
setup(){const box=[];const refl=[];const handleBox=(el)=>{box.push(el);}const handleRefl=(el)=>{refl.push(el);}
//设置值
const over = (index) => {//位于指定元素上方refl[index].style.opacity = 1;};const leave = (index) => {//离开指定元素box[index].$el.style.transform = `perspective(500px) scale(1)`;refl[index].style.opacity = 0;};
}

[vue3.x]ref的使用相关推荐

  1. Vue3的Ref提案到底发生肾摸事了

    Vue3的Ref提案到底发生肾摸事了 朋友们好,我是大圣,最近vue3的ref提案社区讨论的比较多,社区里我看了一下相关的rfc和知乎讨论,我发现很多年轻人不讲武德,今天也摸鱼写一点我的看法吧 先说结 ...

  2. 【vue3】ref获取v-for循环渲染的元素

    前言 在vue2里我们可以给元素绑定ref属性,然后使用this.$refs.xxx 就可以获取到元素. 而在vue3版本中,你可以继续使用vue2的option Api的语法,也可以使用vue2的写 ...

  3. Vue3 的 ref 和 reactive 问题

    如果你使用过 Vue3,你知道的,在 Vue3 中有两个非常常用的响应式 API:reactive 和 ref.它们会把我们想要追踪的数据变成响应式. 而且我们在使用时一直被告知 ref 用于创建基础 ...

  4. vue3中ref的理解

    1.什么是ref ref和reactive一样,也是用来实现响应式数据的方法 由于reactive必须传递一个对象,所以在实际开发中如果只是想让某个变量实现响应式的时候回非常麻烦 所以Vue3提供了r ...

  5. Vue3 初探 ref、reactive 、及改变数组的值

    概况 Vue3 里要实现数据的响应式监听一共有两种方式既:ref 和 reactive 他们既有区别又有联系. ref() ref数据响应式监听.ref 函数传入一个值作为参数,一般传入基本数据类型, ...

  6. Vue2与Vue3中Ref绑定元素

    Vue之Ref绑定元素获取实例 我们可以通过给元素绑定ref属性来获取这个元素的实例,来调用实例中的某种方法来实现某种功能 Vue2实现 <template><!-- 单个绑定 -- ...

  7. 为什么 Vue3 的 ref 让很多大佬操碎了心?

    作者:瑞哥 来源:瑞哥聊前端 最近 Vue3 关于 ref-sugar 的提案引起了广泛的讨论:juejin.im/post/689417-[1] <script setup> impor ...

  8. vue3.0 ref 函数

    先写一个基础的vue3模板 <template><div><p>个人信息</p><p>姓名:{{ name }}</p>< ...

  9. vue3中ref、reactive、shallowRef、 shallowReactive、toRaw、unref、toRef、toRefs、customRef使用与区别

    ref ref toRef 普通ref对象 特殊ref对象 不会和原始对象挂钩 创建的ref对象,与原始对象挂钩 重新渲染 不会触发渲染 -普通ref对象 不会和原始对象挂钩 重新渲染 如下面的例子中 ...

最新文章

  1. linux入门(三)常见Linux指令及其用法
  2. 安装llvmlite报错解决:RuntimeError: llvm-config failed executing, please point LLVM_CONFIG to the path for
  3. Linux系统目录结构,文件类型以及ls、alias命令
  4. Chrome 技术篇-console控制台检测xpath、css唯一性
  5. php数组转ini文件,php – 将数组转换为.ini文件
  6. 通过windows客户端访问
  7. ronald aai_AAI的完整形式是什么?
  8. 论文 | 《深度学习系统的隐私与安全》综述论文,187篇文献总结
  9. 【英语学习】【Daily English】U03 Leisure Time L01 Did you have a nice weekend?
  10. 安卓原生系统_小米新机曝光,运行原生安卓系统;准!四川宜宾5.3级地震提前14秒预警...
  11. 最新麦子学院33G完整版Web前端Web前端开发从入门到精通
  12. QT之TreeWidgetItem基本使用
  13. python pytz模块_python pytz
  14. 机器学习(4)——弱监督学习
  15. nginx搭建mp4、flv流媒体服务器
  16. 恢复html默认打开方式,打开方式怎么还原?文件打开方式修复的方法
  17. python学习之os模块
  18. PGA Tour PRize Money(Uva 207)
  19. 问题:Traceback (most recent call last): File “D:/xiangmu/python/test/test1.py“, line 100, in <module
  20. Windows 8 OA(OEM Activation)3.0 概述

热门文章

  1. ppt打开提示以安全模式启动失败
  2. 杰理之列解决开关机”POPO”声【篇】
  3. htm文件在C语言中如何打开,如何在Microsoft Edge浏览器中打开本地HTML文件?
  4. 如何阅读AUTOSAR官方文档
  5. XP系统下简单的清理系统盘(C盘)
  6. 蓝易云:Linux系统命令-indent命令详细介绍.系列【37】
  7. Logo设计潮流之非主流风格
  8. c语言 验证卡布列克运算,pasca编程验证卡布列克运算
  9. 关于软件测试的个人见解
  10. SpringCloud SpringBoot uniapp vue b2b2c 微服务 多商家入驻直播带货商城 分销商城 秒杀 高并发电商之策略模式