vue3基础

77 阅读2分钟

1.了解setup

image.png

2.reactive

把数组包装成响应式的(只能包装复杂数据类型object和array)

image.png

3.分解数据

image.png

4.ref的基本使用

image.png

5.ref包装复杂数据类型

ref函数,可以把简单数据类型包裹为响应式数据(复杂类型也可以),注意JS中操作值的时候,需要加.value属性,模板中正常使用即可

image.png

6.toRef的使用

转换响应式中某个属性为单独响应式数据,并且转化后的值和之前是关联的(ref也可以转换,但是值并非关联)

image.png

  • 问题 1:模板中都要使用 obj. 进行获取数据,麻烦。
  • 问题 2:明明模板中只用到了 name 和 age,却把整个 obj 进行了导出,没必要,性能浪费

不能进行解构赋值,结构出的数据类型会丢失响应式

image.png

解决:使用name.value进行修改

image.png

7.roRefs

作用:转换响应式对象中所有属性为单独响应式数据,并且转换后的值和之前是关联的

image.png

简单写法:

image.png

8.computed基本使用

computed基于依赖进行缓存,产生一个新结果
watch监听数据的变化,根据变化后的新值进行副作用相关的处理(发请求,操作,DOM,操作本地数据)

image.png

computed其实还可以接收一个对象

image.png

9.计算属性的高级用法

get() 在获取数据的时候会主动调用get函数,拿到结果
set() 设置数据的时候会主动调用set函数,newValue 就是修改后的新值
页面上v-model的值改变了需要用set(newValue)来获取更新后的新值然后修改

image.png

10.watch

(1)可以监听reactive内部数据
注意1:监听reactive内部数据时,强制开启了深度监听,且配置无效,监听的时候newValue和oldValue是全等的

image.png

(2)直接修改 obj等于一个新对象,不能被监听到
watch 监听的是obj这个reactive的内部数据,对内部数据的修改才会被观测到

image.png

(3)reactive内部的复杂数据类型也是一个reactive image.png

(4)监听ref,处理监听的第一种方法
监听ref数据age,会触发后面的回调,不需要.value

image.png

监听多个ref数据(这里面不一定是ref,reactive也行)

image.png

立即触发监听

image.png

watch监听ref数据类型默认是一个浅监听,可以开启深度监听 注意:默认只会监听最外面一层(obj.value然后才是hobby之类的)

image.png

第一种方法:可以触发监听,视图也会更新

image.png

第二种方法:开启深度监听

image.png

第三种方式:针对复杂数据类型

image.png

注意点:

image.png