程序员面试刷题的书哪个好React 328道最全面试题&个人作答
1. 什么时候使用状态管理器? 从组件上考虑:状态需要共享到多个组件,任何组件都可以拿到并响应共享状态中的数据,任何组件也都可以修改共享状态中的数据。针对第一点,Context API、全局变量加发布订阅的模式都可以解决,但是上述方式有一个缺点:当子组件可以任意调用,以此来改变全局状态时,需要一种机制去限制。通过统一的状态管理器进行修改和获取数据,可以降低调试成本。高级功能包括:时间旅行等。
2. render函数中的return如果没有使用()会有什么问题? JavaScript是可不加分号的语言,所以在没有()的情况下,return后直接换行,会被认为返回undefined。加上括号后则不会有这种问题。不加括号的情况下,切记不能换行。
3. componentWillUpdate可以直接修改state的值吗? 不能。componentWillUpdate发生在state或props改变时,在shouldComponentUpdate返回true且在render前执行。如果在这个生命周期方法中直接修改state,会导致不可预料的后果。
暂无评论