包含 Vue 3、TypeScript、性能优化、工程化等方面,偏八股文。
基础知识
-
Vue 3 响应式原理:Vue 3 如何实现响应式系统?Proxy 和 Reflect 的作用是什么?
-
TypeScript 类型体操:实现一个 TypeScript 类型 DeepPartial,使其可以将所有属性递归地变为可选。
-
事件循环:宏任务和微任务的执行顺序是怎样的?requestAnimationFrame 何时执行?
工程化与优化
-
性能优化:如果 Vue 组件的 computed 在高频率更新时性能较差,你会如何优化?
-
Tree Shaking:在 Webpack 或 Vite 中,如何确保你的代码可以正确进行 Tree Shaking?
-
前端监控:如何在 Vue 3 项目中埋点上报用户行为?如果要监控 Vue 组件的错误,如何实现?
手写代码
- 手写防抖和节流(不重复前面的版本):
手写一个 useDebounce 自定义 Vue 组合式 API,用于防抖输入框输入。
手写一个 useThrottle 组合式 API,实现节流逻辑。
-
实现 Promise.allSettled,要求符合 TypeScript 类型定义。
-
实现一个简单的 Diff 算法,模拟 Vue 3 patch 的核心思想(仅对比 key 的变化)。
-
解析 URL 参数:手写一个函数 parseQuery(url: string),将 URL 查询参数解析成对象。
你可以先选几道试试,我再根据你的反馈调整难度或者换题目。