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
element-plus一个vue3.xUI框架(element-ui的3.x 版初体验)
Dec 02 Vue.js
对vue生命周期的深入理解
Dec 03 Vue.js
Vue实现手机号、验证码登录(60s禁用倒计时)
Dec 19 Vue.js
梳理一下vue中的生命周期
Dec 30 Vue.js
vue 动态创建组件的两种方法
Dec 31 Vue.js
vue实现禁止浏览器记住密码功能的示例代码
Feb 03 Vue.js
Vue3 Composition API的使用简介
Mar 29 Vue.js
关于Vue Router的10条高级技巧总结
May 06 Vue.js
Vue监视数据的原理详解
Feb 24 Vue.js
Vue的生命周期一起来看看
Feb 24 Vue.js
vue postcss-px2rem 自适应布局
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页面间传递参数实例代码
2008/06/05 PHP
PHP date函数常用时间处理方法
2015/05/11 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
PHP+redis实现的购物车单例类示例
2019/02/02 PHP
EXTJS记事本 当CompositeField遇上RowEditor
2011/07/31 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
使用forever管理nodejs应用教程
2014/06/03 NodeJs
jquery实现对联广告的方法
2015/02/05 Javascript
在Node.js应用中读写Redis数据库的简单方法
2015/06/30 Javascript
JavaScript使用RegExp进行正则匹配的方法
2015/07/11 Javascript
jquery及js实现动态加载js文件的方法
2016/01/21 Javascript
深入浅析Extjs中store分组功能的使用方法
2016/04/20 Javascript
AngularJS中$http服务常用的应用及参数
2016/08/22 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
解决vue无法设置滚动位置的问题
2018/10/07 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
2020/04/24 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
bootstrapValidator表单校验、更改状态、新增、移除校验字段的实例代码
2020/05/19 Javascript
[03:52]显微镜下的DOTA2第三期——英雄在无聊的时候干什么
2014/06/20 DOTA
[03:15]2014DOTA2国际邀请赛 专访国士无双信心满满
2014/07/12 DOTA
微信 用脚本查看是否被微信好友删除
2016/10/28 Python
Python内存管理方式和垃圾回收算法解析
2017/11/11 Python
Odoo中如何生成唯一不重复的序列号详解
2018/02/10 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
Python测试模块doctest使用解析
2019/08/10 Python
python学习笔记之多进程
2020/08/06 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
房地产开发计划书
2014/01/10 职场文书
小组合作学习反思
2014/02/18 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
匿名检举信范文
2015/03/02 职场文书
交通安全主题班会
2015/08/12 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书