react面试问题总结
1. 在生命周期中的哪一步你应该发起 AJAX 请求?我们应当将AJAX 请求放到 componentDidMount 函数中执行,主要原因有下:
2. 组件的生命周期有哪三个状态,? 有哪几个钩子函数?有三个状态:? 1. 已经插入到DOM中? ? ? 2. 正在更新? ? 3. 已经卸载完毕 8个生命周期:? 1. construtor() ? ?? ? ? ?创建组件 2. componentWillMount? ? ? ? ? ? ???组件加载前 3. componentDidMount? ? ? ???组件加载完成 4. componentWillRecevieProps()? 父组件发生了? render? 的时候,子组件就调用这个钩子函数,进行更新当前组件中,传参相关的状态? 5. shouldComponentUpdate()? 组件挂载完成后,? 如果调用setState就会调用shouldComponentUpdate()函数,来确定是否有必要更新渲染此组件,? 默认返回true 6. componentDidUpdate()? ? ?? ? 必要的状态更新完成 7. render() 开始渲染,? react核心函数 8. componentWillUnMount ? ?组件卸载 / 销毁时调用,? 一般都是:? componentDidMount() 函数中定义注册的事件,在这里删除?? ? 3.? shouldComponentUpdate作用,为何重要?shouldComponentUpdate? 是 允许 我们手动进行组件更新,? ?可以根据组件的实际应用场景,设置合理的函数返回值,? 决定是否要更新,? ?能够避免不必要的更新. 4. 调用 setState 之后发生了什么?调用setState? >>? 将传入参数与组件当前状态合并? >>? 触发Reconciliation调和过程(生成最终状态)? >> 高效构建虚拟DOM,并准备renderUI界面? >>? 计算新旧DOM异同? >>? 根据异同进行render不同点? >>? 完成按需更新 在代码中调用 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |