File tree Expand file tree Collapse file tree 2 files changed +67
-0
lines changed Expand file tree Collapse file tree 2 files changed +67
-0
lines changed Original file line number Diff line number Diff line change 11
11
姓:< input type ="text " v-model ="firstName "> < br />
12
12
名:< input type ="text " v-model ="lastName "> < br />
13
13
< span > 全名:{{getFullName()}}</ span >
14
+ < span > 全名:{{getFullName()}}</ span >
15
+ < span > 全名:{{getFullName()}}</ span >
16
+ < span > 全名:{{getFullName()}}</ span >
14
17
</ div >
15
18
16
19
< script type ="text/javascript " >
Original file line number Diff line number Diff line change
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 >
You can’t perform that action at this time.
0 commit comments