|
@@ -2,14 +2,49 @@
|
|
|
<div>
|
|
<div>
|
|
|
<h2>Demo5</h2>
|
|
<h2>Demo5</h2>
|
|
|
<p>
|
|
<p>
|
|
|
- Computed
|
|
|
|
|
|
|
+ Computed计算属性:根据已有的数据计算出新的数据
|
|
|
</p>
|
|
</p>
|
|
|
|
|
+ 姓: <input type="text" v-model="firstName">
|
|
|
|
|
+ <br>
|
|
|
|
|
+ 名: <input type="text" v-model="lastName">
|
|
|
|
|
+ <br>
|
|
|
|
|
+ <button @click="changeName">修改名字:Zhang-San</button>
|
|
|
|
|
+ <br>
|
|
|
|
|
+ 全名:{{ firstName + lastName }}
|
|
|
|
|
+ <br>
|
|
|
|
|
+ 全名:{{ getName() }}
|
|
|
|
|
+ <br>
|
|
|
|
|
+ 全名:{{ fullName }}
|
|
|
|
|
+ <br>
|
|
|
|
|
+ 全名:{{ fullName1 }}
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
-<script lang="ts" setup>
|
|
|
|
|
-import {ref,reactive} from "vue"
|
|
|
|
|
-
|
|
|
|
|
|
|
+<script setup>
|
|
|
|
|
+import {ref,reactive,computed} from "vue"
|
|
|
|
|
+let firstName = ref("");
|
|
|
|
|
+let lastName = ref("");
|
|
|
|
|
+//计算属性: 只读不修改
|
|
|
|
|
+let fullName = computed(()=>{
|
|
|
|
|
+ return firstName.value + lastName.value;
|
|
|
|
|
+})
|
|
|
|
|
+function getName() {
|
|
|
|
|
+ return firstName.value + lastName.value;
|
|
|
|
|
+}
|
|
|
|
|
+// 计算属性:可以读取及修改
|
|
|
|
|
+let fullName1 = computed({
|
|
|
|
|
+ get() {
|
|
|
|
|
+ return firstName.value + lastName.value;
|
|
|
|
|
+ },
|
|
|
|
|
+ set(val) {
|
|
|
|
|
+ console.log(val,'val')
|
|
|
|
|
+ firstName.value = val.split("-")[0];
|
|
|
|
|
+ lastName.value = val.split("-")[1];
|
|
|
|
|
+ }
|
|
|
|
|
+})
|
|
|
|
|
+function changeName() {
|
|
|
|
|
+ fullName1.value = 'Zhang-San';
|
|
|
|
|
+}
|
|
|
</script>
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
<style lang="scss" scoped>
|