Vue 中 filter 与 computed 的区别与用法解析
watch与puted、filter
watch:监控已有属性,一旦属性发生了改变就去自动调用对应的方法
puted:监控已有的属性,一旦属性的依赖发生了改变,就去自动调用对应的方法
filter:js中为我们提供的一个方法,用来帮助我们对数据进行筛选
watch与puted的区别:
1.watch监控现有的属性,puted通过现有的属性计算出一个新的属性
2.watch不会缓存数据,每次打开页面都会重新加载一次,
puted如果之前进行过计算他会将计算的结果缓存,如果请求会从缓存中
得到数据(所以puted的性能比watch更好一些)
最近遇到一个很不错的候选人,经验丰富,有技术亮点,但在一些细枝末节问题上没有回答的很好,最终还是被刷了。面试过程中有一个问题我印象特别深刻 Vue 中filter与puted属性的区别 ,可惜候选人在现场没有回答上,这里一下
filter 与 puted 的区别
1. 触发时机不同
puted 属性背后的处理逻辑比较复杂,,在属性所依赖的其他数据项发生变化时才会重新触发计算。优点是计算频率相对较低;缺点是依赖于组件,难以抽取成独立逻辑,也就是复用性低。
filter 则显的简单很多,只在显式调用时触发,一般应用在模板渲染上。优点是容易在组件外抽象;缺点是每次模板渲染时都需要重新执行计算。可以通过 感受调用时机的区别
2. 应用范围不同
puted 很广泛,可以应用在其他puted、methods、生命周期函数、模板;filter 一般只应用于模板渲染上,如果要在其他位置复用,需要使用 this._f 函数
Vue.ponent('HelloWorld', { filters: { hello() { return 'hello'; } }, methods: { ping() { return `${this._f('hello')()} world`; } } })
,在使用上filter支持链式调用,这为其增加了组合拼接的能力
<span> {{ name | normalize | capitalize }} </span>
3. 定义方式
需要指出,puted 属性只能在组件内部或通过mixins对象定义;而 filter 有两种定义方式,一是在组件内部通过 filters 属性定义;一是在组件外部通过 Vue.filter 函数定义
Vue.ponent('HelloWorld', { filters: { hello() { return 'hello'; } } }); Vue.filter('hello', ()=> 'hello');
应用规则
综上,filter 无法缓存,调用频率高,特别适用于格式化输出场景,比如日期格式化。filter 具有组合调用能力,可以在项目架构层面定义一堆基础的、简单的filter,按需在组件内组合适用。
puted 属性具有缓存能力,在组件内普适性更强,适用于复杂的数据转换、统计等场景。
以上所述是长沙网络推广给大家介绍的Vue 中 filter 与 puted 的区别与用法解析,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
如果你觉得本文对你有帮助,欢迎网络推广网站推广转载,烦请注明出处,谢谢!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程