shallowRef_shallowReactive.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <template>
  2. <div>
  3. <h1>shallowRef_shallowReactive</h1>
  4. <h3>Ref:{{ sum }}</h3>
  5. <h3>shallowRef:{{ sum1 }}</h3>
  6. <button @click="changeMain1">修改1</button>
  7. <button @click="changeMain2">修改2</button>
  8. <hr>
  9. <hr>
  10. <h3>Ref:我叫{{ person.name }}今年{{ person.age }}岁</h3>
  11. <button @click="changeMain3">修改姓名</button>
  12. <button @click="changeMain4">修改整体</button>
  13. <br><br>
  14. <h3>shallowRef:我叫{{ person1.name }}今年{{ person1.age }}岁</h3>
  15. <button @click="changeMain5">修改姓名</button>
  16. <button @click="changeMain6">修改整体</button>
  17. <hr>
  18. <hr>
  19. <h3>Reactive:我叫{{ person2.name }}今年{{ person2.age }}岁,我家在{{ person2.address.a1 }}有时候回去{{ person2.address.a2 }}泡澡</h3>
  20. <button @click="changeMain7">修改姓名</button>
  21. <button @click="changeMain8">修改整体</button>
  22. <button @click="changeMain11">修改第一个地址</button>
  23. <button @click="changeMain13">修改整体地址</button>
  24. <hr>
  25. <hr>
  26. <hr>
  27. <h3>shallowReactive:我叫{{ person3.name }}今年{{ person3.age }}岁, 我家在{{ person3.address.a1 }}有时候回去{{ person3.address.a2 }}泡澡</h3>
  28. <button @click="changeMain9">修改姓名</button>
  29. <button @click="changeMain10">修改整体</button>
  30. <button @click="changeMain12">修改第一个地址</button>
  31. <button @click="changeMain14">修改整体地址</button>
  32. </div>
  33. </template>
  34. <script lang="ts" setup>
  35. import {ref,reactive, shallowRef, shallowReactive} from "vue"
  36. let sum = ref<number>(10);
  37. let sum1 = shallowRef(20)
  38. function changeMain1() {
  39. sum.value = 12
  40. }
  41. function changeMain2() {
  42. sum1.value = 22
  43. }
  44. let person = ref({
  45. name:"图图",
  46. age:3
  47. })
  48. function changeMain3() {
  49. person.value.name = '蜡笔小新'
  50. }
  51. function changeMain4() {
  52. person.value = {
  53. name:'喜羊羊',
  54. age:4,
  55. }
  56. }
  57. let person1 = shallowRef({
  58. name:'懒羊羊',
  59. age:3
  60. })
  61. function changeMain5() {
  62. person1.value.name = '蜡笔小新'
  63. }
  64. function changeMain6() {
  65. person1.value = {
  66. name:'喜羊羊',
  67. age:4
  68. }
  69. }
  70. let person2 = reactive({
  71. name:'懒羊羊',
  72. age:3,
  73. address:{
  74. a1:"青青草原",
  75. a2:"铁锅"
  76. }
  77. })
  78. let person3 = shallowReactive({
  79. name:'懒羊羊',
  80. age:3,
  81. address:{
  82. a1:"青青草原",
  83. a2:"铁锅"
  84. }
  85. })
  86. function changeMain7() {
  87. person2.name = '喜羊羊'
  88. }
  89. function changeMain8() {
  90. Object.assign(person2,{
  91. name:"蜡笔小新",
  92. age:3,
  93. address:{
  94. a1:'你好',
  95. a2:'haha'
  96. }
  97. })
  98. }
  99. function changeMain9() {
  100. person3.name = '喜羊羊'
  101. }
  102. function changeMain10() {
  103. Object.assign(person3,{
  104. name:"蜡笔小新",
  105. age:4,
  106. address:{
  107. a1:'你好',
  108. a2:'haha'
  109. }
  110. })
  111. }
  112. function changeMain11() {
  113. person2.address.a1 = 'aaa'
  114. }
  115. function changeMain12() {
  116. person3.address.a1 = 'aaa'
  117. }
  118. function changeMain13() {
  119. person2.address = {
  120. a1:'12',
  121. a2:'1222'
  122. }
  123. }
  124. function changeMain14() {
  125. person3.address = {
  126. a1:'12',
  127. a2:'1222'
  128. }
  129. }
  130. </script>
  131. <style lang="scss" scoped>
  132. </style>