React技巧2(避免无意义的父节点)
本教程总共5篇,每日更新一篇,请关注我们!你可以进入历史消息查看以往文章,也敬请期待我们的新文章!
1.React 技巧1(状态组件与无状态组件的使用) ----2018.01.04
2.React 技巧2(避免无意义的父节点)----2018.01.05
3.React 技巧3(如何优雅的渲染一个List)----2018.01.06
4.React 技巧4(如何处理List里面的Item)----2018.01.07
5.React 技巧5(TodoList实现)----2018.01.08
开发环境:Windows 8,node v8.9.1,npm 5.5.1,WebStorm 2017.2.2
我们在开发的时候经常会遇到这样的情况?
比如说,我把
<i className="bd_logo1"/>
这是{this.props.title}
把这两行代码分开,分别放到两个 div.top 里
<div className="top">
</div>
<div className="top">
<i className="bd_logo1"/>
</div>
<div className="top">
这是{this.props.title}
</div>
然后我想把这块代码,做成组件!
新建 SecondsTop.jsx组件
直接把代码放进来,会报错,我们必须把他放到一个标签里.
比如再给它们放到一个div父标签中!
import React from 'react';
const SecondsTop = ({title}) =>
<div>
<div className="top">
<i className="bd_logo1"/>
</div>
<div className="top">
这是{title}
</div>
</div>
;
export default SecondsTop;
我们在Seconds.jsx 引入 SecondsTop.jsx 组件
再浏览器中查看!
你会发现多了一层,无意义的div父标签!毫无意义,还影响性能(很小)
那我们如何避免呢!
改造下SecondsTop.jsx 组件,直接返回一个数组
import React from 'react';
const SecondsTop = ({title}) => [
<div className="top">
<i className="bd_logo1"/>
</div>,
<div className="top">
这是{title}
</div>
];
export default SecondsTop;
再看下浏览器
那个无意义的div父标签,就不需要了!
但是浏览器会报错!
我们只需要给他加上KEY即可,再次改造!
import React from 'react';
const SecondsTop = ({title}) => [
<div className="top" key="top1">
<i className="bd_logo1"/>
</div>,
<div className="top" key="top2">
这是{title}
</div>
];
export default SecondsTop;
再看下浏览器
一切正常,OK!
在开发中经常会遇到,大家要灵活应用,该写法藐视再react16以上版本中才有!
本文完
禁止擅自转载,如需转载请在公众号中留言联系我们!
感谢童鞋们支持!
如果你有什么问题,可以在下方留言给我们!
以上是 React技巧2(避免无意义的父节点) 的全部内容, 来源链接: utcz.com/z/384235.html