1、什么是计算属性模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护。 例如: <div id="app"> {<!-- -->{ message.split('').reverse().join('') }}</div> 在这个地方,模板不再是简单的声明式逻辑。而是在插值表达式中直接反转字符串,如果你在多处用到该反转字符串时,这样写就会很麻烦,增加消耗。所以,对于任何复杂逻辑,你都应当使用 计算属性 。
2.计算属性的语法
computed{函数(){return //必须又返回值。}通常该函数为get函数}
3.举例
针对上面这个例子,我们可以这样写: <div id="app"> <p>原来的字符串:{<!-- -->{mes}}</p> <p>反转后的字符串:{<!-- -->{reverseMes}}</p> </div> let vm = new Vue({ el:'#app', data:{ mes:'sayhello' }, computed: { reverseMes(){ // 计算属性中一定要有返回值 return this.mes.split('').reverse().join('') } } }) 查看结果: 
这里我们在vue 实例的 computed 计算属性中 定义了一个函数,函数的返回值就是我们需要得到的结果,可以直接在插值表达式中调用,并渲染出来 在举个例子,通过计算属性,让单词的首字母变大写: <div id="app"> <p>原字符串:{<!-- -->{name}}</p> <p>首字母大写:{<!-- -->{toUpperCase}}</p> </div> 在vue实例的 computed 计算属性中,自定义我们的计算属性,通过获取到字符串第一个字符并把他转为大写,在和拆分后的剩余字符连接: el:"#app", data:{ name:'tom' }, // 计算属性computed:{ // 自定义 计算属性 toUpperCase(){ return this.name.charAt(0).toUpperCase().concat(this.name.slice(1,3)) } } 输出结果为: 
计算属性还有两个很实用的小技巧容易被忽略: 一是计算属性可以依赖其他计算属性; 下载地址: JavaScript执行机制详细介绍 Vue中的
|