一. ref
1.ref API 如何使用?
ref
的作用就是将一个原始数据类型(primitive data type)转换成一个带有响应式特性的数据类型,原始数据类型共有7个,分别是:String
/ Number
/BigInt
/Boolean
/Symbol
/Null
/Undefined
。
ref
的值在 JS/TS 中读取和修改时,需要使用 .value
获取,在模版中读取是,不需要使用 .value
。
<template> <h2>Vue3 ref API Base</h2> <div>String:{{ refValue }} <span @click="setRefValue">Update</span></div> <div>Object:{{ refObj.name }}<span @click="setRefObj">Update</span></div> </template> <script setup> import { ref } from 'vue' let refValue = ref('Chris1993'); let setRefValue = () => { refValue.value = 'Hello Chris1993'; } let refObj = ref({ name: 'Chris1993' }); let setRefObj = () => { refObj.value.name = 'Hello Chris1993'; } </script>
二.reactive
1. reactive API 如何使用?
reactive
方法用来创建响应式对象,它接收一个对象/数组参数,返回对象的响应式副本,当该对象的属性值发生变化,会自动更新使用该对象的地方。
<template> <h2>Vue3 reactive API Base</h2> <div>Object:{{ reactiveObj.name }} <span @click="setReactiveObj">Update</span></div> <div>Array:{{ reactiveArr }} <span @click="setReactiveArr">Update</span></div> </template> <script setup> import { reactive } from 'vue' let reactiveObj = reactive({ name: 'Chris1993' }); let setReactiveObj = () => { reactiveObj.name = 'Hello Chris1993'; } let reactiveArr = reactive(['a', 'b', 'c', 'd']); let setReactiveArr = () => { reactiveArr[1] = 'Hello Chris1993'; } </script>
2.reactive 可以用在深层对象或数组
reactive
是基于ES2015 Proxy API实现的,它的响应式是整个对象的所有嵌套层级。
3.reactive
返回值和源对象不同
4.reactive
的属性值可以是 ref
值
5.reactive
赋值问题
// 方法1 const state = reactive({ arr: [] }); state.arr = [1, 2, 3] // 方法2 const arr = reactive([]) arr.push(...[1, 2, 3])
Comments | NOTHING