1.以下对react hooks 描述?
-
react要解决的问题是状态共享,状态指的是状态逻辑和数据处理逻辑
-
使用hooks更容易将组件的ui与状态分离
-
多个状态不会产生嵌套,写法是平铺的
-
写法上有限制,不能出现在条件、循环中
-
useEffect第二个参数不写,任何方法都触发useEffect
-
useEffect第二个参数是一个数组,表示以什么state和props来执行副作用
-
useEffect中定义的副作用函数的执行不会阻塞浏览器更新视图,也就是说这些函数是异步执行的。而componentDidMount或componentDidUpdate中的代码则是同步执行的
-
useEffect 依赖的数组如果是空,React首次渲染和之后的每次渲染都会调用一遍传给useEffect的函数。
React16
Hooks lazy. memo. fiber
class. functional. hoc(高阶组件) Render-props
1、状态逻辑复用差 ? render-peops 、hoc 嵌套逻辑特别冗余
2、复杂组件难以理解
3、class类组件,this不好维护,class编译之后的代码太多。热重载的时候会有不稳定情况。
class继承和我们es5继承有什么不一样??
Hooks API:
useEffect 、 useState、 useReducer(管理组件本地的复杂state)、useContext(不用使用组件嵌套就可以使用react订阅)、useMemo(返回一个memo值,依赖项改变重新计算memoized回调函数 pure )、useCallback(memoized callback)、useRef(返回一个 ref的可变对象)
const [count,setCount] = useState(initialCount);
Count fiberNode hook对象以链表的形式存放
useEffect 副作用 ()
// do m操作。
// 浏览器事件绑定。
//h t tp请求。
// io处理。
useEffect(()=>{},[]) // 第一个参数维护副作用处理的逻辑,第二个参数要传入的依赖的状态。
第二个参数没有传入则每次组件渲染都会执行。
第二项为空数组就只在初始化时执行一次。
第二项数组中的数据变了,也会重新执行。
面试题:
-
关于组件的状态state和属性 props之间的不同描述正确的是? ABD