vue中计算属性和过滤器的区别和用法
2020-07-14 05:12
1236 查看
首先来看一个例子:
已知数学成绩和语文成绩,要求他们的平均值
这里可以使用的方法很多:
- 在methods()里面计算;
- 在computed()里面计算;
- 在filter()里面计算
<template> <div> <div>平均值1:{{ avarage1 }}</div> <div>平均值2:{{ avarage2 }}</div> <div>平均值3:{{ math | avarage3(chinese) }}</div> </div> </template> <script> export default { filters: { avarage3: function(math, chinese) { return (math + chinese) / 2 } }, data() { return { math: 95, chinese: 86, avarage1: null } }, computed: { avarage2: function() { return (this.math + this.chinese) / 2 } }, mounted() { this.avarage() }, methods: { avarage: function() { this.avarage1 = (this.math + this.chinese) / 2 } } } </script>
很明显,这三种方式都可以算出平均值
然后我们再看一个例子
假设有一45名学生,我们需要计算出每一个人成绩的平均值
这个时候,计算属性就不那么合适了,因为计算属性相当于是定义了一个变量,在这种需要较多的时候并不合适
那么我们还可以使用methods和filters
methods计算的话是需要循环计算结果
filters计算则是在需要计算的位置进行调用
相比之下filters计算更好
<template> <div> <div v-for="(item, index) in grade" :key="index">学生{{ index + 1 }}: {{ item.math | avarage3(item.chinese) }}</div> </div> </template> <script> export default { filters: { avarage3: function(math, chinese) { return (math + chinese) / 2 } }, data() { return { grade: [{ math: 95, chinese: 86 }, { math: 45, chinese: 76 }, { math: 84, chinese: 86 }, { math: 63, chinese: 53 }, { math: 75, chinese: 68 }, { math: 99, chinese: 89 }] } } } </script>
最后,我们来对比一下计算属性和过滤器的区别
计算属性
1、计算属性适合用在单个属性的计算;
2、计算属性只能在单个vue实例中使用;
3、计算属性不能接收参数,只能使用data中定义的变量进行计算;
4、计算属性有缓存机制,可减少调用次数;
5、计算属性相当于定义一个变量
过滤器
1、过滤器适合多个同样计算方法的属性的计算;
2、过滤器可以定义为全局过滤器,在多个vue实例中使用;
3、过滤器可以接收多个参数进行计算;
4、过滤器没有缓存机制,每调用一次都会计算一次;
5、过滤器相当于定义一个特殊的方法
相关文章推荐
- Vue中computed(计算属性)、methods、watch的区别
- vue.js计算属性用法(computed)
- 使用Vue过滤器和计算属性,分别完成一个表格的动态筛选功能,有没有大神会Vue的,帮忙看一下
- Vue计算属性的用法
- 关于computed(计算属性) methods watched (VUE)区别
- vue的 计算属性(computed)、methods、watched三者区别
- Vue计算属性(computed)、methods、watched三者区别
- vue中计算属性(computed)、methods和watched之间的区别
- 自学Vue必看的计算属性知识总结以及计算属性与方法的区别
- vue计算属性set()、get()用法
- Vue学习笔记 2 - 计算属性/过滤器/自定义指令/监测数组更新/高阶函数/ES6 语法补充/Vue 实例的生命周期
- 【Vue】零基础学习Vue: 第12课 Vue计算属性computed与methods环境的区别
- Vue 图书管理案例:包含过滤器,自定义指令,计算属性,侦听器,生命周期知识点
- Vue的计算属性computed、方法methods、侦听器watch的区别
- vue.js计算属性computed用法实例分析
- 初识Vue之案例二(计算属性与过滤器的使用)
- Vue 关于计算属性computed简单运用及与methods的区别
- Vue 计算属性用法笔记
- Vue.js中计算属性和方法的区别
- vue计算属性和methods的区别