Vue3【十二】09Computed计算属性

打印 上一主题 下一主题

主题 609|帖子 609|积分 1827

Vue3【十二】09Computed计算属性

   计算属性 获取全名 这种方式是只读的不能修改
这样界说fullName是一个计算属性,可读可写
  案例截图


目次结构


代码

Person.vue

  1. <template>
  2.     <div class="person">
  3.         <h1>我是 Person 组件</h1>
  4.         姓: <input type="text" v-model="firstName">
  5.         名: <input type="text" v-model="lastName">
  6.         全名:<span>{{ firstName }} - {{ lastName }}</span>
  7.         全名:<span>{{ fullName }}</span>
  8.         <button @click="changeFullName">修改全名</button>
  9.     </div>
  10. </template>
  11. <script lang="ts" setup>
  12. import { ref, computed } from 'vue';
  13. let firstName = ref('张');
  14. let lastName = ref('国老');
  15. // 计算属性 获取全名 这种方式是只读的不能修改
  16. // let fullName = computed(() => {
  17. //     return firstName.value.slice(0,1).toUpperCase() + firstName.value.slice(1) + ' - ' + lastName.value;
  18. // });
  19. // 这样定义fullName是一个计算属性,可读可写
  20. let fullName = computed({
  21.     get: () => {
  22.         return firstName.value.slice(0,1).toUpperCase() + firstName.value.slice(1) + ' - ' + lastName.value;
  23.     },
  24.     set: (val) => {
  25.         [firstName.value, lastName.value] = val.split('-');
  26.         console.log('修改全名',val);
  27.     }
  28. });
  29. function changeFullName() {
  30.     fullName.value = '曹-国舅'
  31. }
  32. </script>
  33. <style scoped>
  34. .person {
  35.     background-color: #ff9e4f;
  36.     box-shadow: 0 0 10px;
  37.     border-radius: 30px;
  38.     padding: 30px;
  39. }
  40. button {
  41.     margin: 0 10px;
  42.     padding: 0 5px;
  43.     box-shadow: 0 0 5px;
  44.     ;
  45. }
  46. </style>
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

写过一篇

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表