2021-07-06

Vue3全家桶升级指南二ref、toRef、toRefs的区别

ref是对原始数据的拷贝,当修改ref数据时,模板中的视图会发生改变,但是原始数据并不会改变。
toRef是对原始数据的引用,修改toRef数据时,原始数据也会发生改变,但是视图并不会更新。

在vue3中定义一个基础类型的响应式数据一般使用ref,定义一个引用类型的响应式数据一般使用reactive。

import {ref,reactive} from "vue"export default { setup(){ let num=ref(0) let obj=reactive({name:'张三',age:18}) return {num,obj} }}

这样在模板中使用的时候,就可以直接通过{{num}},{{obj.name}},{{obj.age}}获取数据了。

基础类型的数据没有问题,但是引用类型的值在模板中这样写就比较累赘了,我们也可以直接解构出来,在模板中就可以直接使用{{name}}和{{age}}了。

import {ref,reactive} from "vue"export default { setup(){  let num=ref(0)  let obj=reactive({name:'张三',age:18})  let {name,age}=obj  return {num,name,age} }}

toRef是将对象中的某个值转化为响应式数据 toRef(obj,key)

import {toRef} from "vue"export default { setup() {  let obj = { name: '张三', age: 18 };  let newObj = toRef(obj, 'name');  setTimeout(() => {   newObj.value = '李四';   console.log(obj, newObj); //obj中的name和newObj都变成李四了,但是视图显示还是张三,不会变化  }, 2000);  return { obj, newObj }; },};</script>

toRef是对原始数据的引用,修改toRef数据时,原始数据也会发生改变,但是视图并不会更新。

toRefs是将整个对象转化成响应式数据 toRefs(obj)

import {toRefs} from "vue"export default { let obj = { name: '张三', age: 18 };  let newObj = toRefs(obj);  setTimeout(() => {   newObj.name.value = '李四';   console.log(obj, newObj);  }, 2000);  return { obj, newObj };}

需要注意的是,按照上面这种写法,在模板中使用的时候,需要按照这种方式 {{newObj.name.value}}(不太理解),如果想直接使用{{name}},那么在setup中return的时候需要解构下

import {toRefs} from "vue"export default { let obj = { n......

原文转载:http://www.shaoqun.com/a/849293.html

跨境电商:https://www.ikjzd.com/

淘粉:https://www.ikjzd.com/w/1725

let go:https://www.ikjzd.com/w/825

心怡物流:https://www.ikjzd.com/w/1327


ref是对原始数据的拷贝,当修改ref数据时,模板中的视图会发生改变,但是原始数据并不会改变。toRef是对原始数据的引用,修改toRef数据时,原始数据也会发生改变,但是视图并不会更新。在vue3中定义一个基础类型的响应式数据一般使用ref,定义一个引用类型的响应式数据一般使用reactive。import{ref,reactive}from"vue"exportdefaul
自建站短视频营销:国外10款视频编辑工具任你选:https://www.ikjzd.com/articles/91279
自建站卖家掌握这几个聊天技巧,有效减少获客成本:https://www.ikjzd.com/articles/91283
惊呆!美国宣布将对墨西哥西红柿加征17.5%的关税!:https://www.ikjzd.com/articles/91284
品牌备案有什么好处?商标转让流程是什么?:https://www.ikjzd.com/articles/91285
翁熄粗大撞击娇嫩 按着她的腰疯狂的撞击闷哼:http://lady.shaoqun.com/m/a/247888.html
和两个黑人同时做 我被两个老外抱着高爽翻了:http://www.30bags.com/m/a/249821.html
我想吃你的水蜜桃 一边吃早餐一边做:http://www.30bags.com/m/a/249830.html
男人和女人一边摸一边脱 边摸边吃奶边做下面:http://www.30bags.com/m/a/249874.html
妇女办公室被老板弄得很尴尬,但是求助的声音越来越大:http://lady.shaoqun.com/a/403809.html
深圳世界之窗情侣游玩路线推荐:http://www.30bags.com/a/474664.html
深圳2021智博会有哪些值得看的:http://www.30bags.com/a/474665.html
Ebay的Listing优化做得好,订单少不了:https://www.ikjzd.com/articles/146398

No comments:

Post a Comment