react进阶-Fragments,portals,error Boundaries,render Props

Fragments:

    首先,个人觉得,如果代码结构和组件拆分合理的话,这个东西基本用不到。这个东西给人的感觉就是个空标签,还必须得手动传key。它设计的初衷是:

设计初衷

    这完全可以用map直接返回子节点。甚至不用Fragments包装,使用div或者其他标签也是可以的。


Portals:

    这里有必要说一个api:

    ReactDOM.createPortal(child,container)。

    这个api的作用是把child渲染到container节点上,实际上是提供了一套完整的挂载方案。另外,关于事件冒泡,需要注意的是:

冒泡


Error Boundaries:

api:componentDidCatch(error, info);

React的错误处理机制。相当于原生代码里的try/catch,但try/catch只能在命令式代码中使用,而react是声明式的。你需要知道预期渲染的东西,可以把它理解为生命周期,但事实上,它贯穿了组件的整个声明周期。

Render Props:

将子组件暴露给父组件的一种方法。

看上去像这样

在Props中, 我们可以传递数据,那如果我们传递一个组件,或者一个函数呢?react当然照样认识。基于这种特点,我们在属性中,传递一个函数,函数中去渲染一个组件。个人觉得是this.props.children的另外一种扩展形式。再者,我们经常这么干:

经常的做法

但这次,我们把this.aa方法暴露给了父组件,仅此而已。react用起来,就是这么简单。

你可能感兴趣的:(react进阶-Fragments,portals,error Boundaries,render Props)