1 、React 初识
1. 什么是 React?
2. React 的主要特点是什么?
3. React 的优点是什么?
4. React 的局限性是什么?
5. 什么是 CRA 及其好处?
6. React 和 Angular 有什么不同?
7. 与 Vue.js 相比,React 有哪些优势?
1.2React 中的组件和 JSX 初识
1. 什么是 JSX?
2. 元素和组件有什么区别?
3. 如何在 React 中创建组件?
4. 何时使用类组件和函数组件?
5. createElement 和 cloneElement 有什么区别?
6. 怎样在 React 中写注释?
7. 如何使用 React 和 ES6 导入和导出组件?
8.什么是内联条件表达式?
9.为什么 React 使用 className 而不是class属性?
10.在 React 中如何使用 innerHTML?
11.如何在 React 中使用样式?
12.如何有条件地渲染组件?
13.如何有条件地应用样式类?
14.如何使用 React label 元素?
15.如何合并多个内联的样式对象?
16.如何用 React 漂亮地显示 JSON?
17.模块化样式文件有什么好处?
18.是否可以在没有 JSX 的情况下使用 React?
19. 在 JSX 中如何进行循环?
20. keys 是否需要全局唯一?
1.3 编写 TodoList 雏形
1. 什么是 Fragments?
2. 为什么使用 Fragments 比使用容器 div 更好?
3. 推荐的组件命名方法是什么?
1.4响应式设计思想和事件绑定
1. HTML 和 React 事件处理有什么区别?
2. 如何在 JSX 回调中绑定方法或事件处理程序?
3. 如何将参数传递给事件处理程序或回调函数?
4. React 中的合成事件是什么?
5. 每次组件渲染时调用函数的常见错误是什么?
6. 为什么有组件名称要首字母大写?
7. 在 React 中事件有何不同?
8.constructor和getInitialState有什么区别?
9. 在使用ES6类的React中super()和super(props)有什么区别?
10. 如何将参数传递给事件处理程序?
1.5初学 React 带给我们的一些思考
1. 声明式编程 vs 命令式编程?
2. 什么是函数式编程?
1.6 PropTypes 和 DefaultProps 讲解
1. 静态类型检查推荐的方法是什么?
2. 什么是 PropTypes?
3. 什么是 React proptype 数组?
1.7state 、props 与 render 函数的关系
1. React 的状态是什么?
2. React 中的 props 是什么?
3. 状态和属性有什么区别?
4. 为什么不能直接更新状态?
5. 回调函数作为 setState() 参数的目的是什么?
6. 如果在构造函数中使用 setState() 会发生什么?
7. 构造函数使用带 props 参数的目的是什么?
8. 什么是调解?
9. 如何使用动态属性名设置 state?
10. 在 React 中如何校验 props 属性?
11. 如果在初始状态中使用 props 属性会发生什么?
12. 为什么在 DOM 元素上展开 props 需要小心?
13. 为什么需要将函数传递给 setState() 方法?
14. 如何在 attribute 引号中访问 props 属性?
15. setState() 和 replaceState() 方法之间有什么区别?
16. 更新状态中的对象有哪些可能的方法?
17. 为什么函数比对象更适合于 setState()?
18. 如何使用 setState 防止不必要的更新?
19. 什么时候组件的 props 属性默认为 true?
1.8 React 中的“虚拟 DOM”
1. 什么是 Virtual DOM?
2. Virtual DOM 如何工作?
3. Shadow DOM 和 Virtual DOM 之间有什么区别?
4. 什么是 React Fiber,它的主要目标是什么?
5. 什么是“key”属性,在元素数组中使用它们有什么好处?
6. 索引作为键的影响是什么?
7. 安全地使用索引作为键的条件是什么?
8. 如何更新状态以及不更新状态?
1.9 React 中 ref 的使用
1. refs 有什么用?
2. 如何创建 refs?
3. 什么是forwardrefs?
4. callback refs 和 findDOMNode() 哪一个是首选选项?
5. 为什么StringRefs 被弃用?
6. 什么是受控组件?
7. 什么是非受控组件?
8. 如何在页面加载时聚焦一个输入元素?
9. 在 React 中如何以编程方式触发点击事件?
10. 什么时候需要使用 refs?
1.10 React 生命周期函数
1. 组件生命周期的不同阶段是什么?
2. React 生命周期方法有哪些?
3. 在 React v16 中的错误边界是什么?
4. 在 React v15 中如何处理错误边界?
5. 在 componentWillMount() 方法中使用 setState() 好吗?
6. 在 mounting 阶段生命周期方法的执行顺序是什么?
7. 在 React v16 中,哪些生命周期方法将被弃用?
8. 生命周期方法 getDerivedStateFromProps() 的目的是什么?
9. 生命周期方法 getSnapshotBeforeUpdate() 的目的是什么?
10. 在组件类中方法的推荐顺序是什么?
11. 如何在调整浏览器大小时重新渲染视图?
12. 如何监听状态变化?
13. 如何每秒更新一个组件?
14. 为什么不能在 componentWillUnmount 中调用 setState() 方法?
15. 当组件重新渲染时顺序执行的方法有哪些?
16. 如何提高性能?
17. 如何在重新加载页面时保留数据?
2、Redux 相关
2.1Redux 的概念和工作流程
1. 什么是 Flux?
2. 什么是 Redux?
3. Redux 的核心原则是什么??
4. 与 Flux 相比,Redux 的缺点是什么?
5. Flux 和 Redux 之间有什么区别?
2.2 创建 Redux 中的 store 并取得数据
1. 如何在组件外部访问 Redux 存储的对象?
2.3 Action 和 Reducer 的编写
1. 我可以在 reducer 中触发一个 Action 吗?
2. 如何在加载时触发 Action?
3. 为什么 Redux 状态函数称为 reducers?
4. Redux DevTools 的功能有哪些?
2.4 actionTypes 的拆分
1. 在 React 中如何定义常量?
2. Redux 中常量的用途是什么?
2.5 UI 组件、容器组件和无状态组件
1. 什么是无状态组件?
2. 什么是有状态组件?
3. React Redux 中展示组件和容器组件之间的区别是什么?
4. 组件和不同类型?
2.6Redux 中发送异步请求获取数据
1. 如何发起 AJAX 调用以及应该在哪些组件生命周期方法中进行 AJAX 调用?
2.7 使用 Redux-thunk 中间件实现 AJAX 数据请求
1. 如何在 Redux 中发起 AJAX 请求?
2. 什么是 Redux-thunk?
2.8 使用 Redux-saga 中间件实现 AJAX 数据请求
1. 什么是 Redux-saga?
2. Redux-saga 的模型概念是什么?
3. 在 Redux-saga 中 call() 和 put() 之间有什么区别?
4. Redux-saga 和 Redux-thunk 之间有什么区别?