FAQ-React
- 基础(组件开发、状态管理、生命周期)
示例题目 | 模块 | 知识点 |
---|---|---|
JSX 是什么?如何被转换?React 渲染过程是怎样的? | JSX & 渲染机制 | JSX 语法、渲染原理、Virtual DOM |
函数组件和类组件有什么区别?生命周期如何映射? | 函数组件 & Class 组件 | 区别、使用场景、生命周期差异 |
props 和 state 有何区别?state 更新是同步还是异步? | props & state | 单向数据流、状态更新机制 |
React 中如何绑定事件?事件是如何实现跨浏览器兼容的? | 事件处理机制 | 合成事件、事件绑定方式 |
为什么列表渲染需要设置 key?key 的作用是什么? | 条件渲染 & 列表渲染 | 三元表达式、map、key 的作用 |
componentDidMount 和 useEffect 的区别是什么? | 生命周期 | 挂载、更新、卸载 |
如何使用受控组件处理输入?非受控组件用在哪些场景? | 表单处理 | 受控组件、非受控组件 |
React 组件之间有哪些通信方式?适用于哪些场景? | 组件通信 | 组件通信 |
- 进阶(底层机制、性能优化、调度模型)
示例题目 | 模块 | 知识点 |
---|---|---|
useEffect 的依赖数组如何工作?如何避免闭包陷阱? | Hooks 原理 | useState、useEffect、useRef、闭包陷阱 |
如何在兄弟组件之间共享状态?Context 有哪些限制? | 状态提升 & 共享 | 状态提升、Context API |
React 的 Diff 算法是怎么工作的?为什么性能很高? | diff 算法 | key、节点复用策略 |
React 的事件系统是如何实现的?与原生有何区别? | 事件机制 &合成事件 | 合成事件系统、事件委托 |
React 的并发模式是如何提高性能的?Fiber 是什么? | Concurrent 模式 | Fiber 架构、时间分片 |
如何避免组件不必要的重复渲染?useMemo 有哪些陷阱? | 性能优化 | React.memo、useMemo、useCallback |
setState 是异步的原因?如何强制同步更新? | 异步渲染 & 更新队列 | batched updates、flushSync |
父子组件、祖孙组件、兄弟组件之间如何通信? | 组件通信方式 | props、context、回调函数 |
自定义 Hook 的最佳实践?有哪些使用限制? | 自定义 Hooks | 封装逻辑复用、抽象副作用 |
React Router 是如何实现路由变化监听的? | 路由 | React Router 原理、懒加载 |
React SSR 的原理?hydrate 和客户端渲染的区别? | SSR & Hydration | Next.js、hydrate |
函数组件每次渲染都重新执行,为什么 React 还能保留状态、函数引用?这些数据是怎么“记住”的? | Hooks 原理、性能优化 | 为什么函数组件每次执行都重头开始、useState 为什么能 ” 记住 ” 旧值、闭包为什么 ” 看不见 ” 新值 |
React 中的 setState 是同步还是异步的?为什么有时候打印不到最新值? | Hooks 原理 | setState |
FAQ-Vue
- 基础
示例题目 | 模块 | 知识点 |
---|---|---|
Vue2 是如何实现响应式的?Vue3 响应式的原理是? | Vue 响应式系统 | Object.defineProperty vs Proxy、依赖收集 |
v-if 和 v-show 区别?v-model 原理是什么? | 模板语法 & 指令 | v-if、v-for、v-model、v-bind、v-on |
Vue3 生命周期有哪些?适合做哪些事情? | 生命周期 | 各个生命周期的作用 |
父子组件如何通信?跨层通信如何处理? | 组件通信 | props、emit、v-model、provide/inject |
computed 和 watch 有什么区别?使用场景? | 计算属性 & 侦听器 | computed vs watch |
如何监听组件内部的自定义事件?.stop 和.prevent 区别? | 事件机制 | 自定义事件、事件修饰符 |
在 Vue 组件中,模板是否必须有一个根节点包裹?Vue 2 和 Vue 3 在这方面有什么区别? | 渲染机制 | 模板渲染 |
watch 和 watchEffect 有什么区别? |
- 进阶
示例题目 | 模块 | 知识点 |
---|---|---|
ref 和 reactive 有什么区别?watchEffect 是怎么工作的? | Composition API | setup、ref、reactive、watchEffect |
Vue 的 Diff 算法与 React 有哪些异同? | Diff 算法 | Vue 如何高效更新 DOM? |
为什么 data 更新后视图没立即变化? | 异步更新机制 | nextTick 原理与作用 |
如何编写一个拖拽指令? | 自定义指令 | 生命周期钩子、钩子函数参数 |
如何实现一个通用布局组件使用插槽? | 插槽机制 | 默认插槽、具名插槽、作用域插槽 |
如何在路由跳转前检查权限? | Vue Router | 路由守卫、懒加载、动态路由 |
Vuex 的核心概念有哪些?Pinia 的优势? | Vuex / Pinia | 状态管理原理、模块化、持久化 |
Vue SSR 的核心流程是什么? | SSR & Nuxt | 同构渲染、hydrate、SEO |
如何优化 Vue 应用的性能? | 性能优化 | keep-alive、异步组件、v-once |