提交学习笔记专用
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

46 lines
1.1 KiB

<template>
<div class="person">
<!-- <input type="text" v-bind:value="firstName"></input><br> 单向绑定-->
<input type="text" v-model:="firstName"></input><br> <!--双向绑定-->
<input type="text" :value="lastName"></input><br>
全名<span>{{fullName}}</span>
</div>
</template>
<script lang="ts" setup name="Person2">
import {ref,computed, toRefs,toRef} from 'vue'
let firstName = ref('zhang')
let lastName = ref('san')
// 计算属性——只读取,不修改
/* let fullName = computed(()=>{
return firstName.value + '-' + lastName.value
}) */
// 计算属性——既读取又修改
let fullName = computed({
get() {
return firstName.value + '-' + lastName.value;
},
set(val) {
const parts = val.split('-');
if (parts[0]) firstName.value = parts[0];
if (parts[1]) lastName.value = parts[1];
}
})
function changeFullName(){
fullName.value = 'li-si'
}
</script>
<style scoped>
.person{
background-color: aquamarine;
box-shadow: 0 0 10px;
border-radius: 10px;
padding: 20px;
}
</style>