computed计算属性
computed计算属性
作用:根据已有数据计算出新数据(和Vue2
中的computed
作用一致),其也是一个ref类型的变量。
参考代码:
<template> <div class="person"> 姓: <input type="text" v-model="firstName"><br> 名: <input type="text" v-model="lastName"><br> <!-- 这样编写较为复杂 --> <!-- 全名: <span>{{firstName.slice(0, 1).toUpperCase() + firstName.slice(1)}}-{{lastName}}</span> --> 全名: <span>{{fullName}}</span><br> 全名: <span>{{fullName}}</span><br> 全名: <span>{{fullName}}</span><br> 全名: <span>{{fullName}}</span> </div> </template> <script setup lang="ts" name="Person"> import { ref, computed } from 'vue'; let firstName = ref('zhang'); let lastName = ref('san'); //这种编写的计算属性是const的 所以不能 fullName = xxx, 但是我们可以通过修改其依赖的变量的改变使其重新计算 // let fullName = computed(() => { //计算属性即使在template中多次使用也只会执行一次 // console.log(1) // return firstName.value.slice(0, 1).toUpperCase() + firstName.value.slice(1) + '-' + lastName.value; // }); //这么定义的计算属性fullName是 可读可写的 let fullName = computed({ get(){ console.log('get'); return firstName.value.slice(0, 1).toUpperCase() + firstName.value.slice(1) + '-' + lastName.value; }, set(val) { console.log('set', val); // 有了set方法就可以设置对应的值了, 并且可以通过参数获取到传递过来的值, 重新赋值给需要计算的属性就可以引起修改 const [str1, str2] = val.split('-'); firstName.value = str1; lastName.value = str2; } }) </script> <style> .person { background-color: skyblue; box-shadow: 0 0 10px; /* 盒子阴影 */ border-radius: 10px; padding: 20px; } button { margin: 0 5px; } </style>
本文作者:如此而已~~~
本文链接:https://www.cnblogs.com/fragmentary/p/18626660
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步