8.计算属性
1.1 插值语法实现
1 |
|
结果图展示:
2. methods实现
当数据发生变化,模板就会被重新解析1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24<title>姓名案例_methods实现</title>
<script type="text/javascript" src="../js/vue.js"></script>
<div id="root">
姓:<input type="text" v-model="firstName"><br/>
名:<input type="text" v-model="lastName"><br/>
全名:<span>{{ fullName() }}</span>
</div>
<script type="text/javascript">
Vue.config.productionTip = false
new Vue({
el: '#root',
data: {
firstName: '张',
lastName: '三'
},
methods: {
fullName() {
return this.firstName + '-' + this.lastName
}
},
})
</script>
3. 计算属性实现
3.1 computed计算属性
- 定义:要用的属性不存在,需要通过已有属性计算得来
- 原理:底层借助了
Objcet.defineproperty()方法提供的getter和setter get函数什么时候执行?
(1) 初次读取时会执行一次
(2) 当依赖的数据发生改变时会被再次调用优势:与
methods实现相比,内部有缓存机制(复用),效率更高,调试方便- 备注
(a) 计算属性最终会出现在vm上,直接读取使用即可
(b) 如果计算属性要被修改,那必须写set函数去响应修改,且set中要引起计算时依赖的数据发生改变
(3) 如果计算属性确定不考虑修改,可以使用计算属性的简写形式
代码:
1 | <title>姓名案例_计算属性实现</title> |
注意:
- 只有当计算属性依赖的数据发生改变时,才会重新调用计算属性的
get函数,如果不依赖任何数据,那么只会在初次读取时调用一次get函数。 - 只有确定计算属性不会被修改时,才可以使用计算属性的简写形式,否则会报错。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Tao ying!
评论







