Demo6.vue 795 B

12345678910111213141516171819202122232425262728293031323334
  1. <template>
  2. <div>
  3. <h1>Demo6:Computed</h1>
  4. <p>姓: <input type="text" v-model="firstName" /></p>
  5. <p>名: <input type="text" v-model="lastName" /></p>
  6. <p>全名:{{ fullName }}</p>
  7. <button @click="handleClick">修改全名</button>
  8. </div>
  9. </template>
  10. <script lang="ts" setup>
  11. import { ref, reactive, computed } from "vue";
  12. let firstName = ref("孙");
  13. let lastName = ref("悟空");
  14. // let fullName = computed(() => {
  15. // return firstName.value + lastName.value;
  16. // });
  17. let fullName = computed({
  18. get() {
  19. return firstName.value + lastName.value;
  20. },
  21. set(val) {
  22. let arr = val.split("-");
  23. firstName.value = arr[0];
  24. lastName.value = arr[1];
  25. },
  26. });
  27. const handleClick = () => {
  28. fullName.value = "hu-tutu";
  29. };
  30. </script>
  31. <style lang="scss" scoped>
  32. </style>