不太理解为什么要放在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里定义的是方法,不是计算属性。

http://img.mukewang.com/climg/5d3060870001f33206040882.jpg

页面效果:

http://img.mukewang.com/climg/5d30609d0001e62806780215.jpg

可以使用 methods 来替代 computed,效果上两个都是一样的,但是 computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行,可以说使用 computed 性能会更好,但是如果你不希望缓存,你可以使用 methods 属性。

如果帮助到了你,欢迎采纳~祝学习愉快~

0

0 学习 · 10739 问题

查看课程