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-cli 创建模板项目
Nov 19 Vue.js
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
Vue中inheritAttrs的使用实例详解
Dec 31 Vue.js
vue实现登录功能
Dec 31 Vue.js
深入理解Vue的数据响应式
May 15 Vue.js
vue基于Teleport实现Modal组件
May 31 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
Vue如何清空对象
Mar 03 Vue.js
vue使用echarts实现折线图
Mar 21 Vue.js
vue+echarts实现多条折线图
Mar 21 Vue.js
vue 自定义的组件绑定点击事件
Apr 21 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 解决旧系统 查出所有数据分页的类
2012/08/27 PHP
php分页代码学习示例分享
2014/02/20 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
从javascript语言本身谈项目实战
2006/12/27 Javascript
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
JavaScript获取XML数据附示例截图
2014/03/05 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
JavaScript高级程序设计(第三版)学习笔记6、7章
2016/03/11 Javascript
js实现弹窗居中的简单实例
2016/10/09 Javascript
jQuery插件echarts实现的循环生成图效果示例【附demo源码下载】
2017/03/04 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
微信网页授权并获取用户信息的方法
2018/07/30 Javascript
详解微信小程序与内嵌网页交互实现支付功能
2018/10/22 Javascript
Nuxt.js开启SSR渲染的教程详解
2018/11/30 Javascript
微信小程序wepy框架学习和使用心得详解
2019/05/24 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
手把手带你入门微信小程序新框架Kbone的使用
2020/02/25 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
python定向爬虫校园论坛帖子信息
2018/07/23 Python
Windows下将Python文件打包成.EXE可执行文件的方法
2018/08/03 Python
NumPy 数组使用大全
2019/04/25 Python
python数据处理——对pandas进行数据变频或插值实例
2020/04/22 Python
Python pip使用超时问题解决方案
2020/08/03 Python
如何通过Python实现RabbitMQ延迟队列
2020/11/28 Python
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
俄罗斯药房连锁店:ASNA
2020/06/20 全球购物
在职人员函授期间自我评价分享
2013/11/08 职场文书
写给女朋友的道歉信
2014/01/12 职场文书
2014年党支部承诺书
2014/05/30 职场文书
2015年外联部工作总结
2015/04/03 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
小学主题班会教案
2015/08/17 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书