3.vue入门基础学习笔记-计算属性computed
2017-07-14 17:03
891 查看
计算属性介绍
表达式是非常便利的,但是它们实际上只用于简单的运算。在模板中放入太多的逻辑会让模板过重且难以维护,所以引入了计算属性computed,将复杂的逻辑放入计算中进行处理,同时computed有缓存功能,防止复杂计算逻辑多次调用引起的性能问题。computed原理介绍
computed的属性reversedMessage在data中会有一个对我们不可见的cacheReversedMessage属性对应cacheReversedMessage的值是根据其绑定的data中的message来决定的
获取reversedMessage会返回cacheReversedMessage的值
message更新之后会立马调用reversedMessage的get方法去给cacheReversedMessage赋值(无论reversedMessage在dom中是否使用)
cacheReversedMessage的值发生变化时,相应的dom也会发生变化
注意:computed中的属性和data中的属性名字不能相同,一个属性要么在data里;要么在computed里,computed里的属性要跟data中的配合使用,当data属性发生变化时才会调用get方法更新reversedMessage的值,否则get方法即使返回一个随机数,reversedMessage的值也不会变
<div id="example"> <p>Original message: "{{ message }}"</p> <p>Computed reversed message: "{{ reversedMessage }}"</p> </div> var vm = new Vue({ el: '#example', data: { message: 'Hello' }, computed: { // a computed getter reversedMessage: function () { // `this` points to the vm instance return this.message.split('').reverse().join('') } } }) #注意:只有当计算方法里面对应的 message 发生变化时,方法才会重新被调用reversedMessage的值才会随之更新,否则一直是缓存的值
为属性设置一个set方法
如果属性名对应一个方法 那么其为获取方法,如果想同时设置一个设置方法,那么代码如下:当改变fullName的值的时候会立即调用set方法
computed: { fullName: { // getter get: function () { return this.firstName + ' ' + this.lastName }, // setter set: function (newValue) { var names = newValue.split(' ') this.firstName = names[0] this.lastName = names[names.length - 1] } } }
相关文章推荐
- 5.3.vue入门基础学习笔记-基础指令介绍(属性绑定v-bind)
- Vue.js第三天学习笔记(计算属性computed)
- Vue.js第三天学习笔记(计算属性computed)
- java 从零开始,学习笔记之基础入门<对象_属性>(二)
- 黑马程序员之C#编程基础学习笔记:计算一个整数数组的所有元素的和。
- 黑马程序员之C#编程基础学习笔记:用while计算1到100之间整数的和;
- 【分布计算环境学习笔记】6 面向Web的计算环境之基础部分(发展和XML)
- 学习笔记――Java入门基础
- 【学习笔记】零基础C#窗口程序开发入门
- 【算法零基础入门】 学习笔记一 什么是数据结构
- 计算广告学习笔记1.5 广告的基础知识-在线广告市场
- 基础学习笔记之opencv(19):有关图像序列的直方图计算
- 计算广告学习笔记1.6 广告的基础知识-计算广告核心问题和挑战
- 计算广告学习笔记1.2 广告的基础知识-广告的有效性模型
- 计算广告学习笔记1.1 广告的基础知识-广告的目的
- Linux 内核入门学习笔记(一) AT&T汇编基础
- MVC学习笔记之入门篇(二)mvc3相关介绍以及基础知识篇
- java 学习笔记(入门篇)_java的基础语法
- ArcGIS API for Silverlight 入门学习笔记(三):基础地图实例
- XNA 学习笔记(1.基础 : 常用的一些属性)