「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」
刚开始的时候还都在使用 jquery,以为只有会用 jquery 了就能够称霸前端届了,就可以像螃蟹 🦀️ 一样横着走了。。。然而。。。故事并不是按照我以为的发展下去。。。
那一年,前端界都在开始推崇使用 vue,虽然之前自己也学了一些皮毛,但是要直接上手项目还是有些痛苦 😖 的。。。于是乎。。。开始找了一些 vue 实践相关的视频,一步步地敲着代码,终于算是能够有一个 vue 的小 demo 了。。。看着也很是开心。。。
随着 vue 在工作实际中的不断使用,才发现自己对 vue 的理解真的是太片面了,后来找来官网,学习 vue 的 api、生命周期、生态社区、源码。。。才发现原来 vue 的家族是这么庞大。。。越学习越发地觉着自己要学的越来越多。。。
下面简单地介绍一些工作中经常遇到的 vue 相关的技术点吧。。。
v-if or v-show ?
v-if 根据属性值来判断元素是否存在;v-show 则是根据属性值来判断元素是否渲染。
v-if && v-for ?
在 vue 的源码中有这样一个方法 —— genElement,在这个方法中 v-for 判断在 v-if 之前,鉴于此,我们也经常把 v-if 通过 template 包在 v-for 的逻辑外面,来提升项目的性能;而在 vue3 出现之后,v-if 和 v-for 的优先级正好来了个 180 度的大转弯。
Vdom 的 diff 算法 ?
源码中通过首尾元素的四次对比,对Vdom 的节点进行更删改查;而 vue3 中的 diff 借鉴了,对相同的前置与后置元素的预处理和最长递增子序列的算法思想。
keep-alive 缓存组件?
通过 include 来指定需要进行缓存的组件;通过 exclude 来排除不需要被缓存的组件;进入和离开被缓存的页面,需要通过activated 和 deactivated 这两个生命周期勾子来调用对应的方法。
vue-router 和 vue-vuex 以及 vue-axios 也是我们工作中经常用到的,这里就不做过多的介绍了。