vue3—reactive如何更改属性

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue3—reactive如何更改属性相关的知识,希望对你有一定的参考价值。

参考技术A

vue3新增了响应性API,其中数据有两种, ref 和 reactive 。
reactive 支持非原始对象,基础类型不能使用( Number,Boolean 等)

例1

例2

遇到这样的情况,需要单独赋值
例3

或者使用 Object.assign
例4

案例地址

Vue使用reactive动态改变属性

Vue使用reactive动态改变属性

1.目的

我们的目的是根据某些事件来改变某些属性,从而动态的展示在页面上。

这里如果把属性直接定义为ref是不行的,需要定义为reactive才行。

2.使用

const count = ref(1)
const obj = reactive( count )

// ref 会被解包
console.log(obj.count === count.value) // true

// 会更新 `obj.count`
count.value++
console.log(count.value) // 2
console.log(obj.count) // 2

// 也会更新 `count` ref
obj.count++
console.log(obj.count) // 3
console.log(count.value) // 3

注意当访问到某个响应式数组或 Map 这样的原生集合类型中的 ref 元素时,不会执行 ref 的解包:

同时注意reactive不能直接传基础数据类型,要么传对象,要么传数组。

将一个 ref 赋值给为一个 reactive 属性时,该 ref 会被自动解包:

const count = ref(1)
const obj = reactive()

obj.count = count

console.log(obj.count) // 1
console.log(obj.count === count.value) // true

以上是关于vue3—reactive如何更改属性的主要内容,如果未能解决你的问题,请参考以下文章

Vue3新特性——Composition API详解

vue3 官网没有明说的隐藏技能(一)watch与reactive

初识vue3-setup语法糖,ref和reactive语法,computde计算属性,watch开启监听

vue3的ref和reactive以及toRef和toRefs的区别。

Vue 3 组件重置不会重置 reactive() 对象数据

vue3中ref和reactive的区别