React进阶面试题
本文总结了大厂常见的 React 相关面试题,包括什么是 React 同构,renderToString 和 renderToStaticMarkup 的区别等。
什么是同构?
通常是启动一个 node 服务,拦截客户端请求的路径,匹配到相应的容器组件,获取需要渲染的数据,通过 props
,context
,store
等方式传入到组件,通过 React 内置的 renderToString()
或者 renderToStaticMarkup()
生产 html 字符串返回到浏览器。浏览器进行渲染后,React 进行节点对比,完成事件绑定和交互等逻辑
renderToString 和 renderToStaticMarkup 的区别
都是 React 官方提供的两个能在服务端把组件渲染成最终的 html 的方法
renderToString
renderToString()
方法生成的HTML
代码会附加以data-react-*
前缀的属性,react 在客户端就可以通过hydrate
来完成绑定相关的事件和交互- 相应的返回的 html 体积相对较大
- 适用于需要用户交互的应用
renderToStaticMarkup
renderToStaticMarkup
方法和renderToString
方法类似,但不会在React
内部创建以data-
开头的属性。- 返回的 html 体积相对小
- 适用于纯展示页面,不需要用户交互的应用