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 01 Vue.js
Vue解决移动端弹窗滚动穿透问题
Dec 15 Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
详解Vue的异步更新实现原理
Dec 22 Vue.js
利用Vue实现简易播放器的完整代码
Dec 30 Vue.js
vuex的使用步骤
Jan 06 Vue.js
vue-quill-editor插入图片路径太长问题解决方法
Jan 08 Vue.js
vue实现按钮切换图片
Jan 20 Vue.js
Vue基本指令实例图文讲解
Feb 25 Vue.js
vue前端和Django后端如何查询一定时间段内的数据
Feb 28 Vue.js
Vue elementUI表单嵌套表格并对每行进行校验详解
Feb 18 Vue.js
vue3.0 数字翻牌组件的使用方法详解
Apr 20 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 随机生成10位字符代码
2009/03/26 PHP
php中异常处理方法小结
2015/01/09 PHP
php中get_defined_constants函数用法实例分析
2015/05/12 PHP
php实现评论回复删除功能
2017/05/23 PHP
PHP get_html_translation_table()函数用法讲解
2019/02/16 PHP
PDO实现学生管理系统
2020/03/21 PHP
tp5.1 框架路由操作-URL生成实例分析
2020/05/26 PHP
经典的带阴影的可拖动的浮动层
2006/06/26 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
jQuery中:only-child选择器用法实例
2015/01/03 Javascript
jQuery实现鼠标滑过链接控制图片的滑动展开与隐藏效果
2015/10/28 Javascript
jQuery事件绑定用法详解(附bind和live的区别)
2016/01/19 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
python模块之StringIO使用示例
2015/04/08 Python
python 中split 和 strip的实例详解
2017/07/12 Python
详解使用 pyenv 管理多个版本 python 环境
2017/10/19 Python
python实现五子棋游戏
2019/06/18 Python
解决Python3 抓取微信账单信息问题
2019/07/19 Python
Python获取时间范围内日期列表和周列表的函数
2019/08/05 Python
Python 动态导入对象,importlib.import_module()的使用方法
2019/08/28 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
从python读取sql的实例方法
2020/07/21 Python
高中美术教学反思
2014/01/19 职场文书
教师网络培训感言
2014/03/09 职场文书
《去年的树》教学反思
2014/04/11 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
Python+tkinter实现高清图片保存
2022/03/13 Python
sentinel支持的redis高可用集群配置详解
2022/04/01 Redis