Vue3中toRef与toRefs的区别


Posted in Vue.js onMarch 24, 2022

作用:创建一个ref对象,其value值指向另外一个对象中的某个属性。这样在模板中就可以直接使用属性名而不用麻烦的再加对象名前缀了。

语法:

const name = toRef(person,'name')

应用:要将响应式对象中的某个属性单独提供给外部使用时。

扩展:toRefstoRef功能一致,但可以批量创建多个ref对象,需要注意的是它只会解析对象的第一层属性,语法直接传入对象 toRefs(person)

示例:

toRef

<template>
  <span>{{person}}</span>
  <h2>姓名:{{name}}</h2>
  <h2>年龄:{{age}}</h2>
  <h2>薪资:{{salary}}K</h2>
  <button @click="name+='~'">修改姓名</button>
  <button @click="age++">增涨年龄</button>
  <button @click="salary++">涨薪</button>
</template>
<script>
    import {reactive,toRef,toRefs} from 'vue'
    export default{
        name:'App',
        setup(){
            let person = reactive({
                name:'张三',
                age:18,
                job:{
                    j1:{
                        salary:20
                    }
                }
            })
            return {
                person,   //如果只是像之前一样定义reactive后 模板中需要使用属性都要加上对象名(person.name)
                name:toRef(person,'name'), 
                age:toRef(person,'age'),
                salary:toRef(person.job.j1,'salary')
                /*
                但有了toRef后就可以在return中定义数据名称,使用toRef转换为ref的响应式基本数据,
                在模板中就不用再繁琐的加对象名,并且是双向绑定,模板中的修改也会影响到原对象
                */
            }
        }
    }
</script>

在线浏览效果:

Vue3中toRef与toRefs的区别

toRefs 

<script>
    import {reactive,toRef,toRefs} from 'vue'
    export default{
        name:'App',
        setup(){
            let person = reactive({
                name:'张三',
                age:18,
                job:{
                    j1:{
                        salary:20
                    }
                }
            })
            
            return {
                person,
                  ...toRefs(person) 
                /*
                toRefs会将对象第一层的属性都转换为ref基本类型所以用到ES6的语法将这些基本类型都展开来
                注意!!toRefs只会将第一层转换为ref基本类型 
                */
            }
        }
    }
</script>

浏览器效果图:

Vue3中toRef与toRefs的区别

到此这篇关于Vue3中toRef与toRefs的区别的文章就介绍到这了,更多相关toRef与toRefs内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
vue $router和$route的区别详解
Dec 02 Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue+openlayers绘制省市边界线
Dec 24 Vue.js
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
vue实现按钮切换图片
Jan 20 Vue.js
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
Vue如何实现变量表达式选择器
Feb 18 Vue.js
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
Mar 01 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 #Vue.js
深入讲解Vue中父子组件通信与事件触发
Mar 22 #Vue.js
关于Vue中的options选项
Mar 22 #Vue.js
vue+echarts实现多条折线图
vue使用echarts实现折线图
浅谈Vue的computed计算属性
VUE中的v-if与v-show区别介绍
Mar 13 #Vue.js
You might like
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
PHP+.htaccess实现全站静态HTML文件GZIP压缩传输(一)
2007/02/15 PHP
php中文字母数字验证码实现代码
2008/04/25 PHP
初识PHP
2014/09/28 PHP
PHP自带方法验证邮箱是否存在
2016/02/01 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
简单实用的反馈表单无刷新提交带验证
2013/11/15 Javascript
Jquery中find与each方法用法实例
2015/02/04 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
javascript 内置对象及常见API详细介绍
2016/11/01 Javascript
BootStrap中Table隐藏后显示问题的实现代码
2017/08/31 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
初探js和简单隐藏效果的实例
2017/11/23 Javascript
ztree加载完成后显示勾选节点的实现代码
2018/10/22 Javascript
javascript面向对象三大特征之继承实例详解
2019/07/24 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
python数据结构树和二叉树简介
2014/04/29 Python
Python操作SQLite简明教程
2014/07/10 Python
详解python中递归函数
2019/04/16 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
Python xml、字典、json、类四种数据类型如何实现互相转换
2020/05/27 Python
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
香港礼品网站:GiftU eshop
2017/09/01 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
触电现场处置方案
2014/05/14 职场文书
环境保护建议书
2014/08/26 职场文书
教师自我剖析材料范文
2014/09/30 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书