Vue3【十二】09Computed计算属性
计算属性 获取全名 这种方式是只读的不能修改
这样定义fullName是一个计算属性,可读可写
案例截图
目录结构
代码
Person.vue
<template><div class="person"><h1>我是 Person 组件</h1>姓: <input type="text" v-model="firstName">名: <input type="text" v-model="lastName">全名:<span>{{ firstName }} - {{ lastName }}</span>全名:<span>{{ fullName }}</span><button @click="changeFullName">修改全名</button></div>
</template><script lang="ts" setup>
import { ref, computed } from 'vue';let firstName = ref('张');
let lastName = ref('国老');// 计算属性 获取全名 这种方式是只读的不能修改
// let fullName = computed(() => {
// return firstName.value.slice(0,1).toUpperCase() + firstName.value.slice(1) + ' - ' + lastName.value;
// });// 这样定义fullName是一个计算属性,可读可写
let fullName = computed({get: () => {return firstName.value.slice(0,1).toUpperCase() + firstName.value.slice(1) + ' - ' + lastName.value;},set: (val) => {[firstName.value, lastName.value] = val.split('-');console.log('修改全名',val);}
});function changeFullName() {fullName.value = '曹-国舅'
}</script><style scoped>
.person {background-color: #ff9e4f;box-shadow: 0 0 10px;border-radius: 30px;padding: 30px;
}button {margin: 0 10px;padding: 0 5px;box-shadow: 0 0 5px;;
}
</style>