React 相关面试选题

// 笔试应该给电脑,题目放在如 google doc,方便共享和回看

// 应该测试过时技术,和未来技术,以查看经验和兴趣

React 主要的特点(包括优点和缺点)有哪些?
  • 使用 JSX
  • 可复用组件
  • 虚拟DOM(为什么要使用 vDOM,它是干什么的)
  • 跨浏览器兼容
  • 单向数据流
  • 首屏渲染性能
  • 使用服务端渲染(解决SEO和首屏渲染慢的问题)
  • 不是一套完整的框架,还需要学习 router,数据管理的库
  • 写高性能应用

React 组件的生命周期有哪些?
  • WillMount
  • DidMount
  • WillReceiveProps
  • shouldComponentUpdate
  • WillUpdate
  • DidUpdate
  • WillUnMount
  • DidCatch(v16)
// 红色为组件更新的流程

如何写一个高性能的 React 组件?
  • 拆分组件,高阶组件(HOCs, 减少不需要更新的部分无效计算,高阶组件就是一个函数,且该函数接受一个组件作为参数,并返回一个新的组件)
  • 使用纯组件
  • 使用 shouldComponentUpdate
  • 使用组件缓存(?)

什么是纯组件?
  • 是一个函数(虽然说 Class 也是函数)
  • 写法简单
  • 无状态
  • 可以写成纯函数
  • 没有 this,不能直接访问 real DOM
  • 没有生命周期

为什么使用 redux-saga?

说说 React 以后会怎么发展(或者说社区正在做什么)
  • 提升性能
  • 异步渲染