Demo5.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <template>
  2. <div id="demo5">
  3. <h3>姓名:{{obj.name}}</h3>
  4. <h3>年龄:{{obj.age}}</h3>
  5. <h3>
  6. 玩具:
  7. <p>{{obj.car.c1}}</p>
  8. <p>{{ obj.car.c2 }}</p>
  9. </h3>
  10. <button @click="changeCar1">修改第一辆车</button>
  11. <button @click="changeCar2">修改第二辆车</button>
  12. </div>
  13. </template>
  14. /**
  15. ref:可以修改基本数据类型类型 也可以修改引用数据类型类型
  16. 走的还是object.defineProperty()中getter和setter劫持数据 修改数据
  17. ref修改引用 只适用于 浅层的引用数据类型
  18. reactive: 只能修改引用数据类型
  19. 走的是ES6中的代理 proxy
  20. 深层的引用数据类型
  21. */
  22. <script setup lang="ts" name="Demo5">
  23. import { ref,reactive } from 'vue';
  24. let aa = ref('哈哈');
  25. let obj1 = reactive({
  26. bb:"1",
  27. cc:"2"
  28. })
  29. let obj = ref({
  30. name: "图图",
  31. age: 3,
  32. car: {
  33. c1: "玛莎拉蒂",
  34. c2: "大G",
  35. }
  36. })
  37. let obj3 = {
  38. a: {
  39. b:{
  40. c: {
  41. d:"121"
  42. }
  43. }
  44. }
  45. }
  46. console.log(aa);
  47. console.log(obj1);
  48. function changeCar1() {
  49. console.log(obj)
  50. obj.value.car.c1 = '夏利'
  51. // obj.car.c1 = '夏利';
  52. }
  53. function changeCar2() {
  54. obj.value.car.c2 = '五菱'
  55. }
  56. </script>
  57. <style>
  58. </style>