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 +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
Nov 18 Vue.js
详解vue实现坐标拾取器功能示例
Nov 18 Vue.js
解决vue页面刷新,数据丢失的问题
Nov 24 Vue.js
vue中defineProperty和Proxy的区别详解
Nov 30 Vue.js
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 Vue.js
Vue+penlayers实现多边形绘制及展示
Dec 24 Vue.js
Vue通过阿里云oss的url连接直接下载文件并修改文件名的方法
Dec 25 Vue.js
vue导入.md文件的步骤(markdown转HTML)
Dec 31 Vue.js
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 Vue.js
Vue提供的三种调试方式你知道吗
Jan 18 Vue.js
关于Vue中的options选项
Mar 22 Vue.js
Vue组件化(ref,props, mixin,.插件)详解
May 15 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之第五天
2006/10/09 PHP
PHP生成excel时单元格内换行问题的解决方法
2010/08/26 PHP
PHP跨时区(UTC时间)应用解决方案
2013/01/11 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
Prototype Date对象 学习
2009/07/12 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
javascript获取xml节点的最大值(实现代码)
2013/12/11 Javascript
jquery操作对象数组元素方法详解
2014/11/26 Javascript
nodejs调用cmd命令实现复制目录
2015/05/04 NodeJs
javascript验证邮件地址和MX记录的方法
2015/06/16 Javascript
js实现仿MSN带关闭功能的右下角弹窗代码
2015/09/04 Javascript
详解Javacript和AngularJS中的Promises
2016/02/09 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
JQuery通过后台获取数据遍历到前台的方法
2018/08/13 jQuery
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
JavaScript实现省市区三级联动
2020/02/13 Javascript
Python基于select实现的socket服务器
2016/04/13 Python
Python 多维List创建的问题小结
2019/01/18 Python
Python 格式化打印json数据方法(展开状态)
2020/02/27 Python
Python操控mysql批量插入数据的实现方法
2020/10/27 Python
Ubuntu 20.04安装Pycharm2020.2及锁定到任务栏的问题(小白级操作)
2020/10/29 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
2021/02/03 Python
意大利包包和行李箱销售网站:Bagaglio.it
2021/03/02 全球购物
linux下进程间通信的方式
2013/01/23 面试题
生物技术专业研究生自荐信
2013/09/22 职场文书
电大毕业生自我鉴定
2013/11/10 职场文书
秋季校运会广播稿100字
2014/09/18 职场文书
2015届大学生就业推荐表自我评价
2014/09/27 职场文书
2015年幼儿园大班工作总结
2015/04/25 职场文书
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js