Demo8.vue 811 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <template>
  2. <div>
  3. <h1>Demo8</h1>
  4. <h2>{{ obj.name }}--{{ obj.age }}</h2>
  5. <button @click="changeName">修改名字</button>
  6. <button @click="changeAge">修改年级</button>
  7. <button @click="changePerson">修改整个人</button>
  8. </div>
  9. </template>
  10. <script setup>
  11. // ref 定义引用数据类型
  12. import { ref, watch } from "vue";
  13. let obj = ref({
  14. name: "图图",
  15. age: 3,
  16. });
  17. function changeName() {
  18. obj.value.name = "孙悟空";
  19. }
  20. function changeAge() {
  21. obj.value.age = 30;
  22. }
  23. function changePerson() {
  24. obj.value = {
  25. name: "猪八戒1",
  26. age: 4,
  27. };
  28. }
  29. watch(
  30. obj.value,
  31. (newValue, oldValue) => {
  32. console.log("新值", newValue);
  33. console.log("旧值", oldValue);
  34. },
  35. {
  36. deep: true,
  37. immediate: true,
  38. }
  39. );
  40. </script>
  41. <style lang="scss" scoped>
  42. </style>