提交学习笔记专用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
945 B

  1. <template>
  2. <div class="person">
  3. <input type="text" v-model="firstName"> <br>
  4. <input type="text" v-model="lastName"> <br>
  5. 全名<span>{{fullName}}</span> <br>
  6. <button @click="changeFullName">全名改为li-si</button>
  7. </div>
  8. </template>
  9. <script setup lang="ts" name="App">
  10. import {ref,computed} from 'vue'
  11. let firstName = ref('zhang')
  12. let lastName = ref('san')
  13. // 计算属性——只读取,不修改
  14. /* let fullName = computed(()=>{
  15. return firstName.value + '-' + lastName.value
  16. }) */
  17. // 计算属性——既读取又修改
  18. let fullName = computed({
  19. // 读取
  20. get(){
  21. return firstName.value + '-' + lastName.value
  22. },
  23. // 修改
  24. set(val){
  25. console.log('有人修改了fullName',val)
  26. firstName.value = val.split('-')[0]
  27. lastName.value = val.split('-')[1]
  28. }
  29. })
  30. function changeFullName(){
  31. fullName.value = 'li-si'
  32. }
  33. </script>