|
@@ -0,0 +1,46 @@
|
|
|
+<template>
|
|
|
+ <div class="demo6">
|
|
|
+ <!-- watch:监听一切上述所有情况 -->
|
|
|
+ <h2>姓名:{{ obj.name }}</h2>
|
|
|
+ <h2>年龄:{{ obj.age }}</h2>
|
|
|
+ <h2>小车:{{ obj.car.c1 }}---{{ obj.car.c2 }}</h2>
|
|
|
+ <button @click="changeName">修改姓名</button>
|
|
|
+ <button @click="changeC1">修改第一辆</button>
|
|
|
+ <button @click="changeC2">修改第二辆</button>
|
|
|
+ <button @click="changeCar">全换了</button>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script lang="ts" name="demo6" setup>
|
|
|
+import { reactive, watch } from "vue";
|
|
|
+let obj = reactive({
|
|
|
+ name: "张三",
|
|
|
+ age: 18,
|
|
|
+ car: {
|
|
|
+ c1: "五菱宏光",
|
|
|
+ c2: "大众",
|
|
|
+ },
|
|
|
+});
|
|
|
+function changeName() {
|
|
|
+ obj.name += "~";
|
|
|
+}
|
|
|
+function changeC1() {
|
|
|
+ obj.car.c1 = "自行车";
|
|
|
+}
|
|
|
+function changeC2() {
|
|
|
+ obj.car.c2 = "电动车";
|
|
|
+}
|
|
|
+function changeCar() {
|
|
|
+ // Object.assign(obj,{})
|
|
|
+ obj.car = {
|
|
|
+ c1: "马车",
|
|
|
+ c2: "牛车",
|
|
|
+ };
|
|
|
+}
|
|
|
+// 情况五:watch监听多个属性
|
|
|
+watch([()=>obj.name,()=>obj.car],(newValue,oldValue)=>{
|
|
|
+ console.log(newValue,oldValue)
|
|
|
+},{deep:true})
|
|
|
+</script>
|
|
|
+
|
|
|
+<style></style>
|