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 相关文章推荐
详解vue 组件注册
Nov 20 Vue.js
Vue实现购物小球抛物线的方法实例
Nov 22 Vue.js
vue中activated的用法
Jan 03 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
Vue中避免滥用this去读取data中数据
Mar 02 Vue.js
vue中axios封装使用的完整教程
Mar 03 Vue.js
Vue vee-validate插件的简单使用
Jun 22 Vue.js
vue中利用mqtt服务端实现即时通讯的步骤记录
Jul 01 Vue.js
一定要知道的 25 个 Vue 技巧
Nov 02 Vue.js
Vue3如何理解ref toRef和toRefs的区别
Feb 18 Vue.js
vue配置型表格基于el-table拓展之table-plus组件
Apr 12 Vue.js
Vue组件化(ref,props, mixin,.插件)详解
May 15 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
php将数组转换成csv格式文件输出的方法
2015/03/14 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
PHP Callable强制指定回调类型的方法
2016/08/30 PHP
PHP数据的提交与过滤基本操作实例详解
2016/11/11 PHP
php数组和链表的区别总结
2019/09/20 PHP
jquery.Jwin.js 基于jquery的弹出层插件代码
2012/05/23 Javascript
js 时间函数应用加、减、比较、格式转换的示例代码
2013/08/23 Javascript
JavaScript的事件绑定(方便不支持js的时候)
2013/10/01 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
Select下拉框模糊查询功能实现代码
2016/07/22 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
Kindeditor单独调用单图上传增加预览功能的实例
2017/07/31 Javascript
微信小程序6位或多位验证码密码输入框功能的实现代码
2018/05/29 Javascript
Windows下Node爬虫神器Puppeteer安装记
2019/01/09 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
全面理解Python中self的用法
2016/06/04 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
详解python OpenCV学习笔记之直方图均衡化
2018/02/08 Python
python3 图片referer防盗链的实现方法
2018/03/12 Python
对python numpy数组中冒号的使用方法详解
2018/04/17 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
python numpy 一维数组转变为多维数组的实例
2018/07/02 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
Django stark组件使用及原理详解
2019/08/22 Python
python框架flask入门之环境搭建及开启调试
2020/06/07 Python
Python开发入门——迭代的基本使用
2020/09/03 Python
德国便宜的宠物店:Brekz.de
2020/10/23 全球购物
实习生个人找工作的自我评价
2013/10/30 职场文书
实习单位推荐信范文
2013/11/27 职场文书
学生党员思想汇报范文
2014/01/09 职场文书
小学课外阅读总结
2014/07/09 职场文书
小学课外活动总结
2014/07/09 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
单位员工收入证明样本
2014/10/09 职场文书
CSS3实现的侧滑菜单
2021/04/27 HTML / CSS