Demo.vue 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <template>
  2. <h4>{{person}}</h4>
  3. <h2>姓名:{{name}}</h2>
  4. <h2>年龄:{{age}}</h2>
  5. <h2>薪资:{{job.j1.salary}}K</h2>
  6. <button @click="name+='~'">修改姓名</button>
  7. <button @click="age++">增长年龄</button>
  8. <button @click="job.j1.salary++">涨薪</button>
  9. </template>
  10. <script>
  11. import {ref,reactive,toRef,toRefs} from 'vue'
  12. export default {
  13. name: 'Demo',
  14. setup(){
  15. //数据
  16. let person = reactive({
  17. name:'张三',
  18. age:18,
  19. job:{
  20. j1:{
  21. salary:20
  22. }
  23. }
  24. })
  25. // const name1 = person.name
  26. // console.log('%%%',name1)
  27. // const name2 = toRef(person,'name')
  28. // console.log('####',name2)
  29. const x = toRefs(person)
  30. console.log('******',x)
  31. //返回一个对象(常用)
  32. return {
  33. person,
  34. //name:ref(person.name),//采用这种方式,则相当于修改的是新的ref对象,而不是原来的person对象
  35. // name:toRef(person,'name'),
  36. // age:toRef(person,'age'),
  37. // salary:toRef(person.job.j1,'salary'),
  38. ...toRefs(person)
  39. }
  40. }
  41. }
  42. </script>