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 相关文章推荐
Vue3配置axios跨域实现过程解析
Nov 25 Vue.js
vue使用element-ui实现表单验证
Dec 13 Vue.js
vue 通过base64实现图片下载功能
Dec 19 Vue.js
vue el-upload上传文件的示例代码
Dec 21 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
关于Vue Router的10条高级技巧总结
May 06 Vue.js
SSM VUE Axios详解
Oct 05 Vue.js
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
Vue.js中v-for指令的用法介绍
Mar 13 Vue.js
vue实现列表垂直无缝滚动
Apr 08 Vue.js
使用vue判断当前环境是安卓还是IOS
Apr 12 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
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
Laravel如何友好的修改.env配置文件详解
2017/06/07 PHP
js实现的切换面板实例代码
2013/06/17 Javascript
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
node.js中的http.response.addTrailers方法使用说明
2014/12/14 Javascript
JavaScript将字符串转换为整数的方法
2015/04/14 Javascript
JavaScript中setMonth()方法的使用详解
2015/06/11 Javascript
jQuery实现产品对比功能附源码下载
2016/08/09 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
JS实现向iframe中表单传值的方法
2017/03/24 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
对Python新手编程过程中如何规避一些常见问题的建议
2015/04/01 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
python使用for循环计算0-100的整数的和方法
2019/02/01 Python
详解python--模拟轮盘抽奖游戏
2019/04/12 Python
Python List列表对象内置方法实例详解
2019/10/22 Python
Python创建临时文件和文件夹
2020/08/05 Python
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
面向对象设计的原则是什么
2013/02/13 面试题
大学生党课思想汇报
2013/12/29 职场文书
基层党支部整改方案
2014/10/25 职场文书
晋江市人民政府党组群众路线教育实践活动整改方案
2014/10/25 职场文书
单位婚育证明范本
2014/11/21 职场文书
爱心捐款活动总结
2015/05/09 职场文书
离职信范文
2015/06/23 职场文书
情况说明书格式及范文
2019/06/24 职场文书
HTML5+CSS+JavaScript实现捉虫小游戏设计和实现
2021/10/16 HTML / CSS
Spring Data JPA框架自定义Repository接口
2022/04/28 Java/Android