Vue3中的Refs和Ref详情


Posted in Vue.js onNovember 11, 2021

小编同样和大家分享关于Vue3中的数据相应的问题,下面我们来例举一个这样的例子

Vue.createApp({
    template: `<div>{{ nameObj.name }}</div>`,
    setup() {
        const { reactive } = Vue
        const nameObj = reactive({name:'lilei',age:18})
        
        setTimeout(() => {
            nameObj.name = 'hanmeimei'
        },2000)
        return {
            nameObj
        }
    }
}).mount('#root')

这个时候我们可能联想到了es6中关于解构赋值的内容,我们是不是可以将上面例子中的nameObj通过结果解构的方式获取内部的name,然后直接将name返回呢?也就是将代码写成这样

Vue.createApp({
    template: `<div>{{ name }}</div>`,
    setup() {
        const { reactive,toRefs } = Vue
        const nameObj = reactive({name:'lilei',age:18})
                let { name } = nameObj
        setTimeout(() => {
            name.value = 'hanmeimei'
        },2000)
        return {
            name
        }
    }
}).mount('#root')

在实际运行中,我们发现,页面上的内容并没有变成hanmeimei,这个时候,我们需要引入Vue3中的另外一个内容,我们应该把代码修改成这样,才能实现数据和页面的响应式

Vue.createApp({
    template: `<div>{{ name }}</div>`,
    setup() {
        const { reactive,toRefs } = Vue
        const nameObj = reactive({name:'lilei',age:18})
        let { name } = toRefs(nameObj)
        setTimeout(() => {
            name.value = 'hanmeimei'
        },2000)
        return {
            name
        }
    }
}).mount('#root')

同样,和toRefs很类似的还有toRef,代码实例是这样的

Vue.createApp({
    template: `<div>{{ age }}</div>`,
    setup() {
        const { reactive,toRef } = Vue
        const nameObj = reactive({name:'lilei'})
        let age = toRef(nameObj,'age')
        setTimeout(() => {
            age.value = 'hanmeimei'
        },2000)
        return {
            age
        }
    }
}).mount('#root')

到此这篇关于Vue3中的Refs和Ref详情的文章就介绍到这了,更多相关Vue3中的Refs和Ref内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 Vue.js
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
vue实现倒计时功能
Mar 24 Vue.js
vue实现锚点定位功能
Jun 29 Vue.js
vue ref如何获取子组件属性值
Mar 31 Vue.js
vue route新窗口跳转页面并且携带与接收参数
Apr 10 Vue.js
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
vue如何在data中引入图片的正确路径
Jun 05 Vue.js
详细聊聊vue中组件的props属性
一定要知道的 25 个 Vue 技巧
简单聊聊Vue中的计算属性和属性侦听
Oct 05 #Vue.js
SSM VUE Axios详解
vue使用Google Recaptcha验证的实现示例
Vue鼠标滚轮滚动切换路由效果的实现方法
Aug 04 #Vue.js
Vue3.0 手写放大镜效果
You might like
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
PHP之十六个魔术方法详细介绍
2016/11/01 PHP
解决微信授权回调页面域名只能设置一个的问题
2016/12/11 PHP
PHP多线程模拟实现秒杀抢单
2018/02/07 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
2019/10/21 PHP
Js组件的一些写法
2010/09/10 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
JavaScript导出Excel实例详解
2014/11/25 Javascript
JS设置下拉列表框当前所选值的方法
2015/12/22 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
常用的几个JQuery代码片段
2017/03/13 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
JavaScript实现快速排序的方法分析
2018/01/10 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
微信小程序传值以及获取值方法的详解
2019/04/29 Javascript
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
JS实现鼠标按下拖拽效果
2020/07/23 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
vue编写简单的购物车功能
2021/01/08 Vue.js
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
Python利用openpyxl库遍历Sheet的实例
2018/05/03 Python
关于Python作用域自学总结
2019/06/10 Python
Python3 sys.argv[ ]用法详解
2019/10/24 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
GOLFINO英国官网:高尔夫服装
2020/04/11 全球购物
数据库面试要点基本概念
2013/10/31 面试题
在DELPHI中调用存储过程和使用内嵌SQL哪种方式更好
2016/11/22 面试题
人事助理自荐信
2014/02/02 职场文书
党员自我评议个人对照检查材料
2014/09/16 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
发票退票证明
2015/06/24 职场文书
原来闭幕词是这样写的呀!
2019/07/01 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL
MySQL Server层四个日志的实现
2022/03/31 MySQL