重新回顾官方教程中的到计算属性和侦听器,发觉获益良多,主要就是两点:
官方文档用比较的方式说出了计算属性的优点和与其他语法的区别,我就只做一些总结和补充吧
对于同一个功能,计算属性和方法得出的结果是一致,但是计算属性的优势是有缓存,只要相关依赖不改变,计算属性就可以快速在缓存中取值,不用执行函数。
代码量上:当我们定义一个变量,它依赖于两个以上的数据时,计算属性在写法上就很有优势,代码会少很多重复;
当函数中有异步操作和开销比较大时,选择侦听属性。官方只提供了正向例子,我提供一个反面例子吧:
new Vue({
el: '#app',
data: {
},
computed: {
msg: function() {
//我们希望同通过异步获取数据返回给msg
var params = new URLSearchParams();
params.append('username', 'admin');
params.append('password', '123456');
axios({
method: 'post',
url: "{:U('getInfo')}",
data: params
})
.then(function(response) {
return 'computed1';
})
.catch(function(error) {
});
},
},
})
上面的结果msg:undefined,原因是计算属性中是同步的,不支持异步,所以当需要异步操作时,若为初始化你可以放在生命钩子函数的created进行,若需要重复变化的,请使用侦听属性watch
通过比较,我总结下各种语法的使用:
显示数据,可以是一些简单的表达式
大部分情况下,应优先使用,优点是:
手机扫一扫
移动阅读更方便
你可能感兴趣的文章