Demo.vue 932 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <template>
  2. <h4>当前的x.y值是:{{x.y}}</h4>
  3. <button @click="x={y:888}">点我替换x</button>
  4. <button @click="x.y++">点我x.y++</button>
  5. <hr>
  6. <h4>{{person}}</h4>
  7. <h2>姓名:{{name}}</h2>
  8. <h2>年龄:{{age}}</h2>
  9. <h2>薪资:{{job.j1.salary}}K</h2>
  10. <button @click="name+='~'">修改姓名</button>
  11. <button @click="age++">增长年龄</button>
  12. <button @click="job.j1.salary++">涨薪</button>
  13. </template>
  14. <script>
  15. import {ref,reactive,toRef,toRefs,shallowReactive,shallowRef} from 'vue'
  16. export default {
  17. name: 'Demo',
  18. setup(){
  19. //数据
  20. // let person = shallowReactive({ //只考虑第一层数据的响应式
  21. let person = reactive({
  22. name:'张三',
  23. age:18,
  24. job:{
  25. j1:{
  26. salary:20
  27. }
  28. }
  29. })
  30. let x = shallowRef({
  31. y:0
  32. })
  33. console.log('******',x)
  34. //返回一个对象(常用)
  35. return {
  36. x,
  37. person,
  38. ...toRefs(person)
  39. }
  40. }
  41. }
  42. </script>