计算属性(computed)
2017-03-02 09:20
337 查看
需求:数据
方式1:模板中绑定表达式
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
方式2:利用Vue的
文档:http://cn.vuejs.org/v2/guide/computed.html
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
同样可以通过Vue的实例,获取到该属性:
1
但是
可以通过实例对象修改
2
3
1
2
3
我们刚才已经知道,并没有成功修改
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
因为写了setter,这样
msg值为
Hello,我们现在需要反向显示成
olleH。
方式1:模板中绑定表达式
<div id="box"> {{msg}} <hr> {{ msg.split('').reverse().join('') }} </div> <script type="text/javascript"> new Vue({ el:'#box', data:{ msg:'Hello' }, }); </script>1
2
3
4
5
6
7
8
9
10
11
12
13
1
2
3
4
5
6
7
8
9
10
11
12
13
方式2:利用Vue的
computed
文档:http://cn.vuejs.org/v2/guide/computed.html
<!DOCTYPE html> <html> <head> <title></title> <meta charset="utf-8"> <script src="http://unpkg.com/vue/dist/vue.js"></script> </head> <body> <div id="box"> {{msg}} <hr> {{reMsg}} </div> <script type="text/javascript"> var vm = new Vue({ el:'#box', data:{ msg:'Hello' }, computed:{ reMsg:function(){ return this.msg.split('').reverse().join('') } } }); console.log(vm.reMsg); //'olleH' </script> </body> </html>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
同样可以通过Vue的实例,获取到该属性:
console.log(vm.reMsg); //'olleH'1
1
但是
msg和
resMsg是有区别的:
可以通过实例对象修改
msg:
console.log(vm.reMsg); //'olleH'1
console.log(vm.msg = 'World'); //修改
console.log(vm.reMsg = 'reMsgxxooo '); //不能修改
2
3
1
2
3
计算setter
我们刚才已经知道,并没有成功修改reMsg这个计算属性,那是因为默认只有getter,不过需要的时候我们也可以提供一个setter:
<div id="box"> {{msg}} <hr> {{reMsg}} </div> <script type="text/javascript"> var vm = new Vue({ el:'#box', data:{ msg:'Hello' }, computed:{ reMsg:{ get:function(){ return this.msg.split('').reverse().join('') }, set:function(value){ this.msg = value; //最后修改了msg } } } }); console.log(vm.reMsg); //'olleH' console.log(vm.msg = 'World'); //修改 console.log(vm.reMsg = 'reMsgxxooo'); //不能修改 </script>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
因为写了setter,这样
vm.reMsg = 'reMsgxxooo'就会调用
reMsg的set函数,最终修改
msg。
相关文章推荐
- Ember之Computed Properties计算属性
- vue中计算属性computed的getter setter问题
- Vue中计算属性computed的示例解读
- Vue6_计算属性computed
- vue.js计算属性用法(computed)
- Vue.js学习 Item5 -- 计算属性computed与$watch
- VueJS计算属性: computed
- vue计算属性computed和methods的区别
- 计算属性(computed)
- vue的 计算属性(computed)、methods、watched三者区别
- vue-computed计算属性
- Vuejs computed set get计算属性
- Vue.js第三天学习笔记(计算属性computed)
- Vue.js计算属性computed与watch(5)
- vue计算属性computed
- Vuejs computed get set 计算属性
- VUE -- Vue.js每天必学之计算属性computed与$watch
- vue.js计算属性computed用法实例分析
- computed-计算属性的使用和3个特点 方案3
- KnockoutJS 3.X API 第三章 计算监控属性(4)Pure computed observables