|
@@ -1,37 +1,45 @@
|
|
|
<template>
|
|
|
- <div class="demo1">
|
|
|
- <h3>姓名:{{ name }}</h3>
|
|
|
- <h3>年龄:{{ age }}</h3>
|
|
|
- <h3>性别:{{ sex }}</h3>
|
|
|
- <button @click="changeName">修改姓名</button>
|
|
|
- <button @click="changeAge">修改年龄</button>
|
|
|
- <button @click="changeSex">修改性别</button>
|
|
|
+ <!-- 计算属性:computed:缓存 -->
|
|
|
+ <div id="demo1">
|
|
|
+ 姓:<input type="text" v-model="firstName" />
|
|
|
+ <br />
|
|
|
+ 名:<input type="text" v-model="lastName" />
|
|
|
+ <br />
|
|
|
+ 全名:{{ fullName }}
|
|
|
+ <button @click="changeName">修改名字</button>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
-<script lang="ts">
|
|
|
-export default {
|
|
|
- // 语法糖
|
|
|
- setup() {
|
|
|
- // setup语法中 不支持使用this
|
|
|
- let name = "孙悟空";
|
|
|
- let age = 18;
|
|
|
- let sex = "男";
|
|
|
-
|
|
|
- function changeName() {
|
|
|
- console.log("走进来");
|
|
|
- name = "猪八戒";
|
|
|
- console.log(name);
|
|
|
- }
|
|
|
-
|
|
|
- return {
|
|
|
- name,
|
|
|
- age,
|
|
|
- sex,
|
|
|
- changeName,
|
|
|
- };
|
|
|
+<script setup lang="ts" name="Demo1">
|
|
|
+import { ref, reactive, computed } from "vue";
|
|
|
+let firstName = ref("hu");
|
|
|
+let lastName = ref("图图");
|
|
|
+// let fullName = computed(()=>{
|
|
|
+// return firstName.value.slice(0,1).toUpperCase() + firstName.value.slice(1) + '-' + lastName.value;
|
|
|
+// })
|
|
|
+let fullName = computed({
|
|
|
+ get() {
|
|
|
+ return (
|
|
|
+ firstName.value.slice(0, 1).toUpperCase() +
|
|
|
+ firstName.value.slice(1) +
|
|
|
+ "-" +
|
|
|
+ lastName.value
|
|
|
+ );
|
|
|
+ },
|
|
|
+ set(val) {
|
|
|
+ let [str1, str2] = val.split("-");
|
|
|
+ firstName.value = str1;
|
|
|
+ lastName.value = str2;
|
|
|
+ console.log("执行了方法");
|
|
|
},
|
|
|
-};
|
|
|
+});
|
|
|
+function changeName() {
|
|
|
+ fullName.value = "li-si";
|
|
|
+}
|
|
|
+// function getName() {
|
|
|
+// console.log("执行了方法")
|
|
|
+// return firstName.value.slice(0,1).toUpperCase() + firstName.value.slice(1) + '-' + lastName.value;
|
|
|
+// }
|
|
|
</script>
|
|
|
|
|
|
<style></style>
|