Skip to content

Commit f517d65

Browse files
committed
更新
1 parent 8613dfe commit f517d65

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

07_计算属性_computed/2.姓名案例_methods实现.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
姓:<input type="text" v-model="firstName"> <br/>
1212
名:<input type="text" v-model="lastName"><br/>
1313
<span>全名:{{getFullName()}}</span>
14+
<span>全名:{{getFullName()}}</span>
15+
<span>全名:{{getFullName()}}</span>
16+
<span>全名:{{getFullName()}}</span>
1417
</div>
1518

1619
<script type="text/javascript" >
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="UTF-8" />
5+
<title>姓名案例_computed实现</title>
6+
<script type="text/javascript" src="../js/vue.js"></script>
7+
</head>
8+
<body>
9+
<!--
10+
1.计算属性:要显示的数据不存在,要通过计算得来。
11+
2.fullName函数底层用到的是对象setter和getter方法
12+
3.执行的时机:
13+
(1).初始显示会执行一次,得到初始值去显示。
14+
(2).当依赖的数据发生改变时会被再次调用。
15+
4.优势:与methods实现相比,内部有缓存机制,效率更高。
16+
5.备注:计算属性是用于直接读取使用的,不要加()
17+
-->
18+
<!-- 准备好一个容器-->
19+
<div id="root">
20+
姓:<input type="text" v-model="firstName"> <br/><br/>
21+
名:<input type="text" v-model="lastName"><br/><br/>
22+
<span>全名:{{fullName}}</span><br/><br/>
23+
全名: <input type="text" v-model="fullName">
24+
</div>
25+
26+
<script type="text/javascript" >
27+
const vm = new Vue({
28+
el:'#root',
29+
data:{
30+
firstName:'张',
31+
lastName:'三',
32+
},
33+
computed:{
34+
/*
35+
1.fullName是谁在调用?---Vue
36+
2.fullName什么时候调用?初次渲染会调用、当依赖的属性值发生变化
37+
*/
38+
39+
//简写---相当与只指定了get,没有指定set
40+
fullName(){
41+
console.log('fullName')
42+
return this.firstName + '-' + this.lastName
43+
}
44+
45+
//完整写法----set和get都指定了
46+
/* fullName:{
47+
set(value){ //fullName被修改时set被调用,set中的this是vm,set会收到修改的值
48+
const arr = value.split('-')
49+
this.firstName = arr[0]
50+
this.lastName = arr[1]
51+
},
52+
get(){ //fullName被读取时get被调用,get中的this是vm
53+
console.log('get')
54+
return this.firstName + '-' + this.lastName
55+
}
56+
} */
57+
58+
}
59+
})
60+
61+
console.log(vm)
62+
</script>
63+
</body>
64+
</html>

0 commit comments

Comments
 (0)