React面试题
React基本概念
React的核心设计理念是什么?列举三大核心特性
完全拥抱函数式编程
Fiber架构
调度器为什么重构为lans模型
回答SOP:
- 声明式 UI
- JSX
- 组件化
- 单向数据流
- 虚拟DOM
- Hooks
JSX编译而后通过API来执行,编译时与运行时处理
组件化其实简化了代码组织,充分提高代码可读性和可维护性,团队成员更好一起操作
Redux, React 跟 Vue最大的区别,Redux是单向数据流。React更关注组件化,Vue更关注数据驱动
虚拟 DOM,Vapor Mode想要抛弃掉虚拟Dom
Hooks,函数式编程思想,引出UI与状态的充分解耦(以前是不是只能高阶组件解决复用问题)【函数式组合】
虚拟DOM的工作原理与性能优化
1.抛出概念 2. 抛出背景 3. 实现 4.细节 5.最优方案? 概念
js
const App =<div>123</div>
对象,DSL(领域特定语言,低代码结构),AST(语言抽象语法树)jsx->转变为ast->虚拟DOM->DOM
jsx的本质是什么
jsx(JavaScript xml)本质是拓展语法,本质是迎合声明式ui设计理念。 jsx全称是JavaScript XML。 因为浏览器支持的是ECMAScript,在此基础上,通过babel-preset-react来编译jsx,最终编译成js代码。
什么是合成事件,合成事件和原生事件的区别
合成事件,是react自己封装的,原生事件是浏览器原生的,合成事件是react自己封装的。