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+iview分页组件的封装
Nov 17 Vue.js
如何使用 vue-cli 创建模板项目
Nov 19 Vue.js
vue 动态创建组件的两种方法
Dec 31 Vue.js
vue组件是如何解析及渲染的?
Jan 13 Vue.js
如何在vue 中使用柱状图 并自修改配置
Jan 21 Vue.js
vue 组件基础知识总结
Jan 26 Vue.js
Vue 实例中使用$refs的注意事项
Jan 29 Vue.js
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
Vue图片裁剪组件实例代码
Jul 02 Vue.js
vue实现列表垂直无缝滚动
Apr 08 Vue.js
vue判断按钮是否可以点击
Apr 09 Vue.js
vue如何清除浏览器历史栈
May 25 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聊天室技术
2006/10/09 PHP
开源SNS系统-ThinkSNS
2008/05/18 PHP
php使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
php获取数据库中数据的实现方法
2017/06/01 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
区分JS中的undefined,null,&quot;&quot;,0和false
2007/03/08 Javascript
采用call方式实现js继承
2014/05/20 Javascript
一个css与js结合的下拉菜单支持主流浏览器
2014/10/08 Javascript
修改或扩展jQuery原生方法的代码实例
2015/01/13 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
js 图片转base64的方式(两种)
2018/04/24 Javascript
浅析JS中回调函数及用法
2018/07/25 Javascript
CSS3 动画卡顿性能优化的完美解决方案
2018/09/20 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
python标准日志模块logging的使用方法
2013/11/01 Python
python实现从web抓取文档的方法
2014/09/26 Python
利用Python如何生成hash值示例详解
2017/12/20 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
在Qt中正确的设置窗体的背景图片的几种方法总结
2019/06/19 Python
Python常用类型转换实现代码实例
2020/07/28 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
python利用opencv实现颜色检测
2021/02/23 Python
企业面试题试卷附带答案
2015/12/20 面试题
后勤人员自我评价怎么写
2013/09/19 职场文书
化妆品促销方案
2014/02/24 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
遗失证明范文
2015/06/19 职场文书
工商行政处罚决定书
2015/06/24 职场文书
2015年防灾减灾工作总结
2015/07/24 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
vue打包时去掉所有的console.log
2022/04/10 Vue.js
Python实现聚类K-means算法详解
2022/07/15 Python