不太理解为什么要放在computed里?
来源:2-19 自由编程
soso_crazy
2019-07-18 16:55:29
<template>
<div>{{ sortArr }}</div>
</template>
// 使用computed实现对指定的数组[1,4,6,7,-9,4,0,-2,-1,8]进行升序排序
// 第一步:在data函数中,声明数组
// 第二步:在computed中,写出数组被排序的脚本
<script>
export default {
data() {
return {
arr: [1, 4, 6, 7, -9, 4, 0, -2, -1, 8]
};
},
methods: {
compare(value1, value2) {
if (value1 < value2) {
return -1;
} else if (value1 > value2) {
return 1;
} else {
return 0;
}
},
},
computed: {
sortArr() {
return this.arr.sort(this.compare);
}
}
};
</script>
为什么一定要将sortArr写在computed内?而将所有内容放在methods内就不能正确显示?
computed计算属性,那methods里定义的方法就不能计算属性吗?
1回答
好帮手慕言
2019-07-18
同学你好,放到methods里面,也可以实现效果。methods里定义的是方法,不是计算属性。

页面效果:

可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行,可以说使用 computed 性能会更好,但是如果你不希望缓存,你可以使用 methods 属性。
如果帮助到了你,欢迎采纳~祝学习愉快~
相似问题