前言
本文并没有题目的答案,请自行搜索学习
React
- 基础
- 生命周期, 15和16版本的变化
- 控制组件和非控制组件
- setState是同步的还是异步的?
- 组件的通信方式
- react-router-dom路由
- 路由懒加载
- location.href和router跳转有什么区别
- MVVM如何实现,和MVC什么区别
- diff算法理解
- 虚拟DOM的实现,优劣
- React组件的渲染流程
- Fiber的原理
- key的作用
- 传送门Portal, 使用场景
- 双向数据绑定原理
- 合成事件和原生事件区别
- PureComponent,memo,useMemo的区别
- ErrorBoundary, 使用场景
- 错误处理componentDidCatch
- react性能优化是哪个周期函数shouldComponentUpdate
- mixin、hoc、render props、react-hooks的优劣势
- hooks的优缺点
- useEffect里定时器闭包问题
- ref的使用,和useRef的区别
- context的使用,和useContext的区别
- Redux和Mobx
- redux的中间件原理
- redux和mobx的区别
Vue
-
基础
- 生命周期,组件的通信方式,双向绑定,key的作用,
- 虚拟dom, diff算法
- 理解单向数据流
- 组件data为什么返回函数
- computed 和 watch 的区别,应用场景
- nextTick的原理,应用场景
- hash 和 history 路由
- 路由缓存keep-alive
- 组件复用mixin
- v-slot的使用
-
Vuex
Webpack
- webpack打包原理
- 列举常用的loader和plugin
- loader执行顺序
- 单页面和多页面的区别,怎么实现多页面打包
- tree shaking的工作原理
- webpack打包优化
- HMR的原理
- 几种hash的实现原理
- SplitChunksPlugin分割代码
- 编写一个loader或者plugin
性能优化
- 实现图片懒加载和预加载
- 如何进行首屏加载优化
- 图片压缩的方式
项目实战
- 移动端300ms延迟
- 一个网页从请求到呈现花了很长时间,如何排查, 有哪些情况导致的
- 无限滚动加载
- 项目中怎么区分业务组件和技术组件
- react/vue 实现modal,message组件
- fetch,axios的封装
- 登录权限,路由权限
- 前端如何处理十万级别的大量数据
- 骨架图的实现方案
- 如何实现数据打点和用户行为监控
- 大型文件上传 oss
- 虚拟列表的实现
- 移动端软键盘弹出影响页面布局
- 模板引擎
- 前端持续集成/持续部署方案
- 不使用框架如何实现组件按需加载以及原理
- 动态表单的设计与实现
- 富文本编辑器
- 怎么防止数据的重复提交
进阶学习
- 服务端渲染
- TypeScript
- 微前端
- 可视化(地图、echats、canvas、webgl、d3.js、three.js)
- 跨平台(flutter、react-native、weex、electron)
日常问答
- 平时如何进行学习的
- 目前在学习什么
- 你的优点是什么,缺点是什么
- 你为什么离职,对上一家公司的印象如何
- 你对未来的职业规划是怎样子的
- 项目中遇到的问题,如何解决的
- 项目中还有什么需要改进的地方
- 在公司有啥技术贡献
- 在原公司,自己最大的成长是什么
- 自己觉得在原公司的开发流程上,还有哪些可以改进的
- 说说你对前端目前发展的认知
总结
vue接触不多,不定时更新。