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-router定义元信息meta操作
Dec 07 Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
vue+element实现动态加载表单
Dec 13 Vue.js
vue中配置scss全局变量的步骤
Dec 28 Vue.js
Vuex实现简单购物车
Jan 10 Vue.js
详解为什么Vue中的v-if和v-for不建议一起用
Jan 13 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
详解Vue的七种传值方式
Feb 08 Vue.js
Vue如何实现变量表达式选择器
Feb 18 Vue.js
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
vue项目配置 webpack-obfuscator 进行代码加密混淆的实现
Feb 26 Vue.js
Vue3中的Refs和Ref详情
Nov 11 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安全性问题中的:Null 字符问题
2013/06/21 PHP
php实现斐波那契数列的简单写法
2014/07/19 PHP
php中动态修改ini配置
2014/10/14 PHP
TP5框架实现的数据库备份功能示例
2020/04/05 PHP
js 模拟气泡屏保效果代码
2010/07/10 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
js异常捕获方法介绍
2013/04/10 Javascript
jquery设置控件位置的方法
2013/08/21 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
2015/09/09 Javascript
jQuery双向列表选择器select版
2016/11/01 Javascript
基于jQuery实现的单行公告活动轮播效果
2017/08/23 jQuery
Vue-cli 使用json server在本地模拟请求数据的示例代码
2017/11/02 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
Vue+Mock.js模拟登录和表格的增删改查功能
2018/07/26 Javascript
element-ui 本地化使用教程详解
2019/10/28 Javascript
vue input标签通用指令校验的实现
2019/11/05 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
python练习程序批量修改文件名
2014/01/16 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
基于python实现微信模板消息
2015/12/21 Python
Python环境下搭建属于自己的pip源的教程
2016/05/05 Python
Python基于回溯法子集树模板实现8皇后问题
2017/09/01 Python
python中yield的用法详解——最简单,最清晰的解释
2019/04/04 Python
用Anaconda安装本地python包的方法及路径问题(图文)
2019/07/16 Python
python 实现让字典的value 成为列表
2019/12/16 Python
python如何处理程序无法打开
2020/06/16 Python
旅游管理专业学生求职信
2013/09/28 职场文书
商务助理岗位职责
2013/11/13 职场文书
《吃水不忘挖井人》教学反思
2014/04/15 职场文书
优秀员工自荐书
2015/03/06 职场文书
辞职信格式范文
2015/05/13 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
2016年学校安全教育月活动总结
2016/04/06 职场文书
golang fmt格式“占位符”的实例用法详解
2021/07/04 Golang