- 使用v-show复用DOM
- v-for时加key,以及避免和v-if同时使用
v-for = “user in activeUsers”
:key = “user.id”
{{ user.name }}
- 事件销毁
created(){
this.timer = setInterval(this.refresh,2000)
},
beforeDestroy(){
clearInterval(this.timer)
}
- 图片懒加载(vue-lazyload)
- 第三方插件按需引入
import Vue from ‘vue’
import { Button,Select } from ‘element-ui’
Vue.use(Button)
Vue.use(Select)
- 无状态的组件标记为函数式组件
- 子组件分割
-
长性能列表的优化
-
如果列表是纯粹的数据展示,不会有任何改变,就不需要做响应式
export default {
data: () => ({
users:[]
})
async created(){
const users = await axios.get(‘/api/users’)
this.users = object.freeze(users)
}
}
- 如果是大数据长列表,可采用虚拟滚动,只渲染少部分区域内容
- 见上文梳理
-
执行render函数 触发 getter 收集依赖到 watcher
-
更新的时候 触发 setter 通知 watcher 触发 re-render 渲染
-
input 元素的 value = this.name
-
绑定input事件 this.name = $event.target.value
-
data 更新触发re-render
-
缓存,data不变不会重新计算
-
提高性能
-
mounted (整个渲染完成,dom渲染完成)
-
js是单线程,ajax异步获取数据
-
$props
-
<User v-bind="$props">
-
解绑自定义事件 event.$off
-
清楚定时器
-
解绑自定义的DOM事件,如window scroll 等
-
action中处理异步,mutation不可以
-
mutation做原子操作
-
action 可以整合多个mutation
{
tag:‘xx’,
props:{
id:‘xx’
},
children:[
tag:‘xx’,
children:“xxx”
]
}
-
patch(elm,vnode) 和 patch(vnode,newVnode)
-
patchVnode 和 addVnodes 和 removeVnode
-
updateChildren(key的重要性)
-
更快
-
虚拟DOM重写
期待更多的编译时提示来减少运行时开销,使用更有效的代码来创建虚拟节点
组件快速路径 + 单个调用 + 子节点类型检测
-
跳过不必要的条件分支
-
JS引擎更容易优化
- 优化slots的生成
vue3中可以单独重新渲染父级和子级
-
确保实例正确的跟踪依赖关系
-
避免不必要的父子组件重新渲染
- 静态树提升
使用静态树提升,这意味着Vue3 的编译器将能够检测到什么是静态的,然后将其提升,从而降低了渲染成本。
-
跳过修补整棵树,从而降低渲染成本
-
即使多次出现也能正常工作
-
静态属性提升
使用静态属性提升,Vue 3 打补丁时将跳过这些属性不会改变的节点,但是孩子还要继续patch
- 基于Proxy的响应式系统
Vue 2的响应式系统使用 Object.defineProperty的getter和setter。Vue 3将使用ES2015 Proxy作为其观察机制,这将会带来如下变化:
-
组件实例初始化的速度提高100%
-
使用Proxy节省以前一半的内存开销,加快速度,但是存在低浏览器版本的不兼容
-
为了继续支持IE11,Vue 3将发布一个支持旧观察机制的和新Proxy版本的构建
-
更小
-
通过摇树优化核心库体积
-
更容易维护
-
TypeScript + 模块化
Vue 3将带来更可维护的源代码。他不仅会使用TypeScript,而且许多包被解耦,更加模块化
-
更加友好
-
跨平台:编译器核心和运行时核心与平台无关,使得Vue更容易与任何平台(web、Android、IOS)一起使用
-
更容易使用
-
改进的TypeScript支持,编辑器能提供强有力的类型检查和错误及警告
-
更好的调试支持
-
独立的响应化模块
-
Composition API
由于篇幅原因,仅展示一部分面试题详解,更多最新的Vue面试题整理成了一个PDF,需要的朋友点击这里免费获取。
vue-cli工程
-
构建的 vue-cli 工程都到了哪些技术,它们的作用分别是什么?
-
vue-cli 工程常用的 npm 命令有哪些?
-
请说出vue-cli工程中文件夹和文件的用处
-
config文件夹 下 index.js 的对于工程 开发环境 和 生产环境 的配置
-
请你详细介绍一些 package.json 里面的配置
vue核心知识点
-
对于Vue是一套渐进式框架的理解
-
vue.js的两个核心是什么?
-
请问 v-if 和 v-show 有什么区别
-
vue常用的修饰符
-
v-on可以监听多个方法吗?
-
vue中 key 值的作用
-
vue-cli工程升级vue版本
-
vue事件中如何使用event对象?
-
$nextTick的使用
-
Vue 组件中 data 为什么必须是函数
-
v-for 与 v-if 的优先级
-
vue中子组件调用父组件的方法
-
vue中 keep-alive 组件的作用
-
vue中如何编写可复用的组件?
-
什么是vue生命周期?
-
vue生命周期钩子函数有哪些?
-
vue如何监听键盘事件中的按键?
-
vue更新数组时触发视图更新的方法
-
vue中对象更改检测的注意事项
-
解决非工程化项目初始化页面闪动问题
-
v-for产生的列表,实现active的切换
-
v-model语法糖的组件中的使用
-
vue中自定义过滤器
-
vue等单页面应用及其优缺点
-
什么是vue的计算属性?
-
vue-cli提供的几种脚手架模板
-
vue父组件如何向子组件中传递数据?
-
vue弹窗后如何禁止滚动条滚动?
-
计算属性的缓存和方法调用的区别
-
vue-cli中自定义指令的使用
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后的最后
面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体免费获取
又不知道该从何学起的朋友,同时减轻大家的负担。**
[外链图片转存中…(img-dwMC84Op-1713438748417)]
[外链图片转存中…(img-JKilLJIu-1713438748418)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
[外链图片转存中…(img-t4k8ejY7-1713438748418)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
[外链图片转存中…(img-EV9e0P62-1713438748418)]
最后的最后
面试题千万不要死记,一定要自己理解,用自己的方式表达出来,在这里预祝各位成功拿下自己心仪的offer。
需要完整面试题的朋友可以点击蓝色字体免费获取
[外链图片转存中…(img-nzU9bpq5-1713438748419)]
[外链图片转存中…(img-31supOxC-1713438748419)]
[外链图片转存中…(img-PaeB9snO-1713438748419)]
[外链图片转存中…(img-GlvJ1aic-1713438748420)]