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 03 Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 Vue.js
为什么推荐使用JSX开发Vue3
Dec 28 Vue.js
Vue页面渲染中key的应用实例教程
Jan 12 Vue.js
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
vue keep-alive的简单总结
Jan 25 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
vue.js Router中嵌套路由的实用示例
Jun 27 Vue.js
vue3中provide && inject的使用
Jul 01 Vue.js
idea编译器vue缩进报错问题场景分析
Jul 04 Vue.js
vue cli4中mockjs在dev环境和build环境的配置详情
Apr 06 Vue.js
三种方式清除vue路由跳转router-link的历史记录
Apr 10 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中json_encode、json_decode与serialize、unserialize的性能测试分析
2010/06/09 PHP
PHP中用hash实现的数组
2011/07/17 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
Javascript中arguments用法实例分析
2015/06/13 Javascript
Vue.js自定义指令的用法与实例解析
2017/01/18 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
利用nginx + node在阿里云部署https的步骤详解
2017/12/19 Javascript
完美解决linux下node.js全局模块找不到的情况
2018/05/16 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
vue页面加载时的进度条功能(实例代码)
2020/01/13 Javascript
react国际化化插件react-i18n-auto使用详解
2020/03/31 Javascript
jquery html添加元素/删除元素操作实例详解
2020/05/20 jQuery
原生JS实现音乐播放器的示例代码
2021/02/25 Javascript
Python生成器(Generator)详解
2015/04/13 Python
python中scikit-learn机器代码实例
2018/08/05 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
Python3打包exe代码2种方法实例解析
2020/02/17 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
2020/04/16 Python
Python 为什么推荐蛇形命名法原因浅析
2020/06/18 Python
基于Python爬取搜狐证券股票过程解析
2020/11/18 Python
10个python爬虫入门基础代码实例 + 1个简单的python爬虫完整实例
2020/12/16 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
html5给汉字加拼音加进度条的实现代码
2020/04/07 HTML / CSS
Skyscanner英国:苏格兰的全球三大领先航班搜索服务之一
2017/11/09 全球购物
西雅图的买手店:Totokaelo
2019/10/19 全球购物
大四本科生的自我评价
2013/12/30 职场文书
家长评语大全
2014/01/22 职场文书
公司授权委托书
2014/04/04 职场文书
移风易俗倡议书
2014/04/15 职场文书
环卫工人先进事迹材料
2014/06/02 职场文书
奉献家乡演讲稿
2014/09/13 职场文书
党的群众路线教育实践活动对照检查材料(教师)
2014/09/24 职场文书
2015年端午节活动方案
2015/05/05 职场文书
Vue如何清空对象
2022/03/03 Vue.js
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA