vue3【计算属性与监听-详】
创始人
2024-01-28 10:38:34
0

一、计算属性--简写形式

需求:通过计算属性,计算一个人的全名。

 

计算属性同样是传入一个回调函数 

>>>这时候有人问,我的全名不应该放在personInfo里面嘛,不应该单独列出来。

答:说的对,接下来我们看一下如何放入personInfo里面,并实现计算。

很简单,直接在personInfo身上追加一个属性fullName即可。因为personInfo是由reactive定义的,所以可以对它身上的属性随便增删改查,而且能确保都是响应式的

注意:上面的计算属性是简写形式(没有考虑计算属性被修改的情况) 

使用的时候,改成下面这样就ok了。 

 

 >>>问题来了,如果计算属性想被修改怎么办?

就像下面这样,,,

 此时我们去修改计算属性,控制台就会出现警告,提示,你这个计算属性是只读

二、计算属性--完整形式 

 那么考虑计算属性的读和写的【完整写法】如下:

        personInfo.fullName = computed({// 读get(){return personInfo.firstName + '-' + personInfo.lastName},// 写set(value){console.log(value)const name = valuepersonInfo.firstName = name.split('-')[0]personInfo.lastName = name.split('-')[1]}})

此时当我们修改计算属性的值,属性的值也会跟着变化 

三、watch监听ref定义的数据

先看下vue2监听的简写写法及结果