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使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
如何在Vue项目中添加接口监听遮罩
Jan 25 Vue.js
详解vue中v-for的key唯一性
May 15 Vue.js
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
Vue2.0搭建脚手架
Mar 13 Vue.js
Vue中使用import进行路由懒加载的原理分析
Apr 01 Vue.js
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
Vue.Draggable实现交换位置
Apr 07 Vue.js
分享一个vue实现的记事本功能案例
Apr 11 Vue.js
解决vue中provide inject的响应式监听
Apr 19 Vue.js
详解Vue3使用axios的配置教程
Apr 29 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实现MySQL更新记录的代码
2008/06/07 PHP
PHP生成HTML静态页面实例代码
2008/08/31 PHP
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
JObj预览一个JS的框架
2008/03/13 Javascript
jQuery EasyUI 中文API Button使用实例
2010/04/14 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
谈谈对offsetleft兼容性的理解
2015/11/11 Javascript
JS本地刷新返回上一页代码
2016/07/25 Javascript
jQuery常用样式操作实例分析(获取、设置、追加、删除、判断等)
2016/09/08 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
React Native使用Modal自定义分享界面的示例代码
2017/10/31 Javascript
详解微信小程序调起键盘性能优化
2018/07/24 Javascript
vue  directive定义全局和局部指令及指令简写
2018/11/20 Javascript
微信小程序性能优化之checkSession的使用
2019/03/06 Javascript
layui 实现table翻页滚动条位置保持不变的例子
2019/09/05 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
[03:49]DOTA2 2015国际邀请赛中国区预选赛第二日现场百态
2015/05/27 DOTA
详细解析Python当中的数据类型和变量
2015/04/25 Python
详解Python中的静态方法与类成员方法
2017/02/28 Python
Python线程同步的实现代码
2018/10/03 Python
python中关于数据类型的学习笔记
2020/07/19 Python
matplotlib阶梯图的实现(step())
2021/03/02 Python
浅谈基于HTML5的在线视频播放方案
2016/02/18 HTML / CSS
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
LookFantastic丹麦:英国美容护肤精品在线商城
2016/08/18 全球购物
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
怎么写好自荐信
2013/10/30 职场文书
团支书的期末学习总结自我评价
2013/11/01 职场文书
外企财务年会演讲稿
2014/01/03 职场文书
拆迁委托协议书
2014/09/15 职场文书
2015新年寄语大全
2014/12/08 职场文书
2015年学校禁毒工作总结
2015/05/27 职场文书
小学生一年级(书信作文)
2019/08/13 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
浅谈python数据类型及其操作
2021/05/25 Python