vue-learning:20 - js - 区别:filters / data / computed / watch / methods
区别:filters / data / computed / watch / methods
在配置对象options
中,filters
/data
/computed
/watch
/methods
的每一项都有适合的场景,并且通常在项目中都是混合使用。
data
对象适合纯粹的数据。如果想要某个数据在某个地方应用后需要视图改变的话,那就好放在data
对象中,如果需要响应逻辑运算后的结果那最好使用计算属性。如果需要外部参数参与逻辑运算的话那就使用方法。
filter
是纯函数,适合模板或v-bind
值的格式化,比计算属性高效,可以替代部分计算属性的功能。
watch
适合监听异步事件,执行异步回调。
选项 | 可读 | 可写 | 有默认参数 | 可以传入参数(非默认) | 进行逻辑运算 | 有缓存
:- | :-: | :-: | :-: | :-: | :-: | :-: | :-:
data | 是 | 是 | 无 | 否 | 可以接受简单表达式 | 无
computed | 是get | 是set | set(newVal) | 否 | 是 | 是
watch | 是 | 否 | (newVal, oldVal) | 否 | 是 | 无
methods | 是 | 否 | 事件处理对象event | 是 | 是 | 无
filtes | 是 | 否 | val | 是(作为第二个参数开始) | 是 | 无