特性:持续监控某个响应式变量的属性名变化,可以使用shallowRef来取消这一特性,只监控对象整体的变化
ref测试代码:
<template>
<div :id="idValue" ref="myDiv">打印obj{{ obj }}</div>
<!-- <div v-if="true"> 我是if</div> -->
<!-- <div v-show="false"> 我是if</div> -->
<!-- <button :disabled="true" @click="printId">Print ID {{ resultId }}</button> -->
<button v-on:[eventName]="doSomething">我是click动态参数按钮</button>
</template>
<script setup="ts">
import { ref } from 'vue'
// 响应式状态
const idValue = ref("defaultValue")
const resultId =ref("")
const eventName = "click"
const obj = ref({
attribute1:[1,2,3,4,5,6,7,8,9,10],
attribute2:{cont:0},
})
// 用来修改状态、触发更新的函数
// const increment = ()=> {
// count.value++
// }
const doSomething =()=>{
obj.value.attribute1.push(11)
obj.value.attribute2.cont++
}
// const rawHtml ="<span style='color:red'>htmlTest</span>"
</script>
结果1:
shallowRef测试代码:
<template>
<div :id="idValue" ref="myDiv">打印obj{{ obj }}</div>
<!-- <div v-if="true"> 我是if</div> -->
<!-- <div v-show="false"> 我是if</div> -->
<!-- <button :disabled="true" @click="printId">Print ID {{ resultId }}</button> -->
<button v-on:[eventName]="doSomething">我是click动态参数按钮</button>
</template>
<script setup="ts">
import { ref, shallowRef } from 'vue'
// 响应式状态
const idValue = ref("defaultValue")
const resultId =ref("")
const eventName = "click"
const obj = shallowRef({
attribute1:[1,2,3,4,5,6,7,8,9,10],
attribute2:{cont:0},
})
// 用来修改状态、触发更新的函数
// const increment = ()=> {
// count.value++
// }
const doSomething =()=>{
obj.value.attribute1.push(11)
obj.value.attribute2.cont++
}
// const rawHtml ="<span style='color:red'>htmlTest</span>"
</script>
结果: