gro*_*ovy 5 javascript ecmascript-6 reactjs
我试图了解无状态组件以及这些示例之间的区别:
class App {
render() {
return (
<div>
{this.renderAFunction('hello')}
</div>
);
}
renderAFunction(text) {
return (
<p>{text}</p>
);
}
}
Run Code Online (Sandbox Code Playgroud)
还有这个:
class App {
render() {
return(
<div>
<RenderAFunction text='hello'/>
</div>
);
}
}
const RenderAFunction = ({text}) => (
<p>{text}</p>
);
Run Code Online (Sandbox Code Playgroud)
或者如果有任何差异?
功能上,绝对没有区别.两者最终都会呈现一个段落元素,但还有其他方面需要考虑.在研究这两种方法时,有三点要做(在我看来):
renderAFunction只是为了生成一些基于API请求的JSX,那么在一个方法中就可以了.但是如果你想在其他地方重用它,那么将它分成它自己的组件.React的很大一部分是组件可重用性并且摆脱了代码重复.将方法分离到它自己的组件中是必要的.一个好的经验法则是问问自己,我是否需要在其他任何地方使用它?如果没有,那么将其保存在方法中.如果你在其他任何地方都不需要它,那么将JSX分成一个单独的组件将会有更差的性能,并且不会遵循React的核心原则.
如果您打算在其他地方需要它,那么请将组件分开,以便遵循React的可重用性概念.
| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |