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的hash值原理也是table切换实例代码
Dec 14 Vue.js
vue实现图片裁剪后上传
Dec 16 Vue.js
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
在vue项目中封装echarts的步骤
Dec 25 Vue.js
手写Vue源码之数据劫持示例详解
Jan 04 Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 Vue.js
vue使用transition组件动画效果的实例代码
Jan 28 Vue.js
Vue通过懒加载提升页面响应速度
May 10 Vue.js
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
vue使用refs获取嵌套组件中的值过程
Mar 31 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的范围解析操作符(::)的含义分析说明
2011/07/03 PHP
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
PHP实现采集中国天气网未来7天天气
2014/10/15 PHP
php获取访问者浏览页面的浏览器类型
2017/01/23 PHP
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
javascript获取web应用根目录的方法
2014/02/12 Javascript
js中substring和substr的定义和用法
2014/05/05 Javascript
基于JavaScript实现仿京东图片轮播效果
2015/11/06 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
vue 动态绑定背景图片的方法
2018/08/10 Javascript
vue将毫秒数转化为正常日期格式的实例
2018/09/16 Javascript
单页面vue引入百度统计的使用方法示例详解
2018/10/13 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
JS变量提升及函数提升实例解析
2020/09/03 Javascript
JavaScript常用工具函数库汇总
2020/09/17 Javascript
在Python的Tornado框架中实现简单的在线代理的教程
2015/05/02 Python
Python内置函数OCT详解
2016/11/09 Python
Python深度优先算法生成迷宫
2018/01/22 Python
python使用pycharm环境调用opencv库
2018/02/11 Python
通过Python 接口使用OpenCV的方法
2018/04/02 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
pyshp创建shp点文件的方法
2018/12/31 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
GafasWorld西班牙:购买太阳镜、眼镜和隐形眼镜
2019/09/08 全球购物
中专毕业生的自我鉴定
2013/12/01 职场文书
工商管理专业职业生涯规划
2014/01/01 职场文书
个人简历中的自我评价怎么写
2014/01/26 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
人事局接收函
2015/01/30 职场文书