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项目利用axios请求接口下载excel
Nov 17 Vue.js
解决Vue-cli3没有vue.config.js文件夹及配置vue项目域名的问题
Dec 04 Vue.js
如何在vue中使用kindeditor富文本编辑器
Dec 19 Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
vue编写简单的购物车功能
Jan 08 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
vue+spring boot实现校验码功能
May 27 Vue.js
vue+iview实现手机号分段输入框
Mar 25 Vue.js
vue特效之翻牌动画
Apr 20 Vue.js
详解Vue3使用axios的配置教程
Apr 29 Vue.js
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 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 str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
2014/10/30 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
Javascript中eval函数的使用方法与示例
2007/04/09 Javascript
js函数般调用正则
2008/04/08 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
Bootstrap每天必学之标签与徽章
2015/11/27 Javascript
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
vue实现输入框的模糊查询的示例代码(节流函数的应用场景)
2019/09/01 Javascript
python代码制作configure文件示例
2014/07/28 Python
Python安装lz4-0.10.1遇到的坑
2018/05/20 Python
Python多线程原理与用法详解
2018/08/20 Python
Python实现插入排序和选择排序的方法
2019/05/12 Python
基于Python计算圆周率pi代码实例
2020/03/25 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
Python制作简单的剪刀石头布游戏
2020/12/10 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
css3弹性盒模型(Flexbox)详细介绍
2014/10/08 HTML / CSS
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
施华洛世奇澳大利亚官网:SWAROVSKI澳大利亚
2017/01/06 全球购物
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
js实现弹框效果
2021/03/24 Javascript
优秀应届生推荐信
2013/11/09 职场文书
事业单位绩效考核实施方案
2014/03/27 职场文书
单位委托书范本
2014/04/04 职场文书
陈胜吴广起义口号
2014/06/20 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
员工离职通知函
2015/04/25 职场文书
起诉书范文
2015/05/20 职场文书