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实现随机验证码功能
Dec 29 Vue.js
Vue过滤器,生命周期函数和vue-resource简单介绍
Jan 12 Vue.js
vue动态设置路由权限的主要思路
Jan 13 Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
Vue看了就会的8个小技巧
Jan 21 Vue.js
Vue Element UI自定义描述列表组件
May 18 Vue.js
vue基于Teleport实现Modal组件
May 31 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
Apr 24 Vue.js
vue项目如何打包之项目打包优化(让打包的js文件变小)
Apr 30 Vue.js
Vue 打包后相对路径的引用问题
Jun 05 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生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
用php解析html的实现代码
2011/08/08 PHP
php的扩展写法总结
2019/05/14 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
JS学习之一个简易的日历控件
2010/03/24 Javascript
Jquery拖拽并简单保存的实现代码
2010/11/28 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
JQuery 中几个类选择器的简单使用介绍
2013/03/14 Javascript
js使用eval解析json(js中使用json)
2014/01/17 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
AngularJS中使用HTML5手机摄像头拍照
2016/02/22 Javascript
JS防止网页被嵌入iframe框架的方法分析
2016/09/13 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
新手vue构建单页面应用实例代码
2017/09/18 Javascript
浅谈vue的iview列表table render函数设置DOM属性值的方法
2017/09/30 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
在Python中使用正则表达式的方法
2015/08/13 Python
python3实现抓取网页资源的 N 种方法
2017/05/02 Python
Tensorflow简单验证码识别应用
2017/05/25 Python
如何使用Python脚本实现文件拷贝
2019/11/20 Python
500行python代码实现飞机大战
2020/04/24 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
Expedia印度尼西亚站:预订酒店、廉价航班和度假套餐
2018/01/31 全球购物
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
村干部培训班主持词
2014/03/28 职场文书
学生党员公开承诺书
2014/05/28 职场文书
四查四看自我剖析材料
2014/09/19 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
工程技术负责人岗位职责
2015/04/13 职场文书
好人好事新闻稿
2015/07/17 职场文书
安全教育的主题班会
2015/08/13 职场文书