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中使用kindeditor富文本编辑器
Dec 19 Vue.js
Vue仿百度搜索功能
Dec 28 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
如何使用RoughViz可视化Vue.js中的草绘图表
Jan 30 Vue.js
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
vue实现简单数据双向绑定
Apr 28 Vue.js
vue使用v-model进行跨组件绑定的基本实现方法
Apr 28 Vue.js
Vue实现导入Excel功能步骤详解
Jul 03 Vue.js
VUE中的v-if与v-show区别介绍
Mar 13 Vue.js
Vue中使用import进行路由懒加载的原理分析
Apr 01 Vue.js
教你部署vue项目到docker
Apr 05 Vue.js
vue @click.native 绑定原生点击事件
Apr 22 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设计聊天室步步通
2006/10/09 PHP
如何取得中文字符串中出现次数最多的子串
2013/08/08 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
轻松学习Javascript闭包函数
2015/12/15 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
史上最全JavaScript数组去重的十种方法(推荐)
2017/08/17 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
layer.open 按钮的点击事件关闭方法
2018/08/17 Javascript
为jquery的ajax请求添加超时timeout时间的操作方法
2018/09/04 jQuery
React 实现拖拽功能的示例代码
2019/01/06 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
详解基于Vue的支持数据双向绑定的select组件
2019/09/02 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
详解Vue3 Teleport 的实践及原理
2020/12/02 Vue.js
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python:Scrapy框架中Item Pipeline组件使用详解
2017/12/27 Python
python TKinter获取文本框内容的方法
2018/10/11 Python
凯伦·米莲女装网上商店:Karen Millen
2017/11/07 全球购物
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
优秀党员转正的自我评价
2013/10/06 职场文书
会计找工作求职信范文
2013/12/09 职场文书
工程售后服务承诺书
2014/05/21 职场文书
团结演讲稿范文
2014/05/23 职场文书
万能检讨书2000字
2014/10/17 职场文书
社区重阳节活动总结
2015/03/24 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
python实现对doc、txt、xls等文档的读写操作
2022/04/02 Python