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下载后台传过来的乱码流的问题
Dec 05 Vue.js
vue中利用three.js实现全景图的完整示例
Dec 07 Vue.js
Vue3 实现双盒子定位Overlay的示例
Dec 22 Vue.js
Vue实现省市区三级联动
Dec 27 Vue.js
vue+elementui通用弹窗的实现(新增+编辑)
Jan 07 Vue.js
Vue看了就会的8个小技巧
Jan 21 Vue.js
如何让vue长列表快速加载
Mar 29 Vue.js
vue中三级导航的菜单权限控制
Mar 31 Vue.js
vue-cropper组件实现图片切割上传
May 27 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
Vue3.0 手写放大镜效果
Jul 25 Vue.js
vue使用watch监听属性变化
Apr 30 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+AjaxForm异步带进度条上传文件实例代码
2017/08/14 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
2017/08/29 PHP
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
Extjs中ComboBox加载并赋初值的实现方法
2012/03/22 Javascript
js创建元素(节点)示例
2014/01/02 Javascript
jquery toolbar与网页浮动工具条具体实现代码
2014/01/12 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
JavaScript中setFullYear()方法的使用详解
2015/06/11 Javascript
Angular发布1.5正式版,专注于向Angular 2的过渡
2016/02/18 Javascript
jQuery.Callbacks()回调函数队列用法详解
2016/06/14 Javascript
angular基于路由控制ui-router实现系统权限控制
2016/09/27 Javascript
web打印小结
2017/01/11 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
总结4个方面优化Vue项目
2019/02/11 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
如何自动化部署项目?折腾服务器之旅~
2019/04/16 Javascript
javascript删除数组元素的七个方法示例
2019/09/09 Javascript
Python实现MySQL操作的方法小结【安装,连接,增删改查等】
2017/07/12 Python
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
使用django-crontab实现定时任务的示例
2018/02/26 Python
python使用folium库绘制地图点击框
2018/09/21 Python
详解Django模版中加载静态文件配置方法
2019/07/21 Python
Python爬虫图片懒加载技术 selenium和PhantomJS解析
2019/09/18 Python
python 哈希表实现简单python字典代码实例
2019/09/27 Python
python3实现弹弹球小游戏
2019/11/25 Python
Windows上安装tensorflow  详细教程(图文详解)
2020/02/04 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
印度婴儿用品在线商店:Firstcry.com
2016/12/05 全球购物
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
幼教个人求职信范文
2013/12/02 职场文书
班主任经验交流材料
2014/12/16 职场文书
收银员岗位职责范本
2015/04/07 职场文书
2015年教师党员承诺书
2015/04/27 职场文书
一次项目中Thinkphp绕过禁用函数的实战记录
2021/11/17 PHP