Demo.vue 1012 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <template>
  2. <h1>一个人的信息</h1>
  3. 姓:<input type="text" v-model="person.firstName">
  4. <br>
  5. 名:<input type="text" v-model="person.lastName">
  6. <br>
  7. <span>全名:{{person.fullName}}</span>
  8. <br>
  9. 全名:<input type="text" v-model="person.fullName">
  10. </template>
  11. <script>
  12. import {reactive,computed} from 'vue'
  13. export default {
  14. name: 'Demo',
  15. setup(){
  16. //数据
  17. let person = reactive({
  18. firstName:'张',
  19. lastName:'三'
  20. })
  21. //计算属性——简写(没有考虑计算属性被修改的情况)
  22. /* person.fullName = computed(()=>{
  23. return person.firstName + '-' + person.lastName
  24. }) */
  25. //计算属性——完整写法(考虑读和写)
  26. person.fullName = computed({
  27. get(){
  28. return person.firstName + '-' + person.lastName
  29. },
  30. set(value){
  31. const nameArr = value.split('-')
  32. person.firstName = nameArr[0]
  33. person.lastName = nameArr[1]
  34. }
  35. })
  36. //返回一个对象(常用)
  37. return {
  38. person
  39. }
  40. }
  41. }
  42. </script>