vue3+ts的computed属性怎么用?

打印 上一主题 下一主题

主题 1819|帖子 1819|积分 5457

首先我们要进行引入computed这个属性,然后定义用这个属性的时间我们要先相识这个属性。
这个computed其实分为里两种!一种是仅可读的,还有一种就是即可以读,又可以修改的!
那我们常用的肯定是后者!我们引入方法后,里面直接包一个对象里面装着get()set()两种方法!学习java后端的应该都不陌生!哈哈哈哈哈,然后get就是拿到这个计算的值,直接return回来即可,而set就是要对计算的值进行修改!点击之后,就可以修改这个全名了!
  1. <template>
  2.   <div class="person">
  3.     <div>姓:<input type="text" v-model="firstName" /></div>
  4.     <div>名:<input type="text" v-model="lastName" /></div>
  5.     <div>
  6.       全名:<span>{{ fullName }}</span>
  7.     </div>
  8.     <button @click="changeFullName">将全名改为li-si</button>
  9.   </div>
  10. </template>
  11. <script lang="ts" setup name="Person">
  12. import { ref, computed } from "vue";
  13. let firstName = ref("zhang");
  14. let lastName = ref("san");
  15. let fullName = computed({
  16.   get() {
  17.     return (
  18.       firstName.value.slice(0, 1).toUpperCase() +
  19.       firstName.value.slice(1) +
  20.       "-" +
  21.       lastName.value
  22.     );
  23.   },
  24.   set(val) {
  25.     console.log(val);
  26.     const [str1, str2] = val.split("-");
  27.     firstName.value = str1;
  28.     lastName.value = str2;
  29.   },
  30. });
  31. function changeFullName() {
  32.   fullName.value = "li-si";
  33. }
  34. </script>
  35. <style scoped>
  36. .person {
  37.   background-color: #ddd;
  38.   box-shadow: 0 0 10px;
  39.   border-radius: 10px;
  40.   padding: 20px;
  41. }
  42. </style>
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

伤心客

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表