![ca2a2ba7c25c78ce627c138a542a11f9.png](https://img-blog.csdnimg.cn/img_convert/ca2a2ba7c25c78ce627c138a542a11f9.png)
高阶组件相关
什么是高阶组件,它有哪些运用?
高阶组件就是一个函数,接收一个组件,经过处理后返回后的新的组件;
高阶组件,不是真正意义上的组件,其实是一种模式;
可以对逻辑代码进行抽离,或者添加某个共用方法;
eg:
react-redux :connect就是一个高阶组件,接收一个component,并返回一个新的componet,处理了监听store和后续的处理 ;
react-router :withrouter 为一个组件注入 history对象;高阶组件和父组件的区别?
高阶组件可以重写传入组件的state,function,props;可以对代码逻辑进行抽离,重写 ;
父组件只是控制子组件的view层;
react diff算法是如何提高性能的?
传统的页面更新,是直接操作dom来实现的,比如原生js或者jquery,但是这种方式性能开销比较大;
react 在初始化的时候会生成一个虚拟dom,每次更新视图会比较前后虚拟dom的区别;
这个比较方法就是diff算法,diff算法很早就已经出现了;但是react的diff算法有一个很大区别;
传递diff算法:通过循环递规对节点进行依次