首页 归档 图表 购物 半帘梦 个人中心

React.Fragment

2019-09-01
  • React
本文总阅读量次

从遇见开始,我欠自己良多,从不欠你分毫。

React.Fragment

  • React 中一个常见模式是为一个组件返回多个元素。Fragments 可以让你聚合一个子元素列表,并且不在 DOM 中增加额外节点。
  • Fragments 看起来像空的 JSX 标签
1
2
3
4
5
6
7
8
9
render() {
return (
<>
<ChildA />
<ChildB />
<ChildC />
</>
);
}
  • 一个常见模式是为一个组件返回一个子元素列表。
1
2
3
4
5
6
7
8
9
10
11
class Table extends React.Component {
render() {
return (
<table>
<tr>
<Columns />
</tr>
</table>
);
}
}
  • 为了渲染有效的 HTML , 需要返回多个 元素。如果一个父 div 在 的 render()函数里面使用,那么最终的 HTML 将是无效的。
1
2
3
4
5
6
7
8
9
10
class Columns extends React.Component {
render() {
return (
<div>
<td>Hello</td>
<td>World</td>
</div>
);
}
}
  • 在 组件中的输出结果如下:
    1
    2
    3
    4
    5
    6
    7
    8
    <table>
    <tr>
    <div>
    <td>Hello</td>
    <td>World</td>
    </div>
    </tr>
    </table>
1
2
3
4
5
6
7
8
9
10
class Columns extends React.Component {
render() {
return (
<>
<td>Hello</td>
<td>World</td>
</>
);
}
}
  • 在正确的 组件中,这个结果输出如下:
    1
    2
    3
    4
    5
    6
    <table>
    <tr>
    <td>Hello</td>
    <td>World</td>
    </tr>
    </table>
  • 你可以像使用其它元素那样使用 <></>。

  • 另一种使用片段的方式是使用 React.Fragment 组件,React.Fragment 组件可以在 React 对象上使用。 这可能是必要的,如果你的工具还不支持 JSX 片段。 注意在 React 中, <></> 是 <React.Fragment/> 的语法糖。

1
2
3
4
5
6
7
8
9
10
class Columns extends React.Component {
render() {
return (
<React.Fragment>
<td>Hello</td>
<td>World</td>
</React.Fragment>
);
}
}
  • 带 key 的 Fragments

  • <></> 语法不能接受键值或属性。

  • 如果你需要一个带 key 的片段,你可以直接使用 <React.Fragment /> 。

  • 一个使用场景是映射一个集合为一个片段数组
    — 例如:创建一个描述列表:

1
2
3
4
5
6
7
8
9
10
11
12
13
function Glossary(props) {
return (
<dl>
{props.items.map((item) => (
// 没有`key`,将会触发一个key警告
<React.Fragment key={item.id}>
<dt>{item.term}</dt>
<dd>{item.description}</dd>
</React.Fragment>
))}
</dl>
);
}
  • key 是唯一可以传递给 Fragment 的属性。在将来,我们可能增加额外的属性支持,比如事件处理。
完
SEO优化
Vuex-Module

Promise

Do not, for one repulse, give up the purpose that you resolved to effect.

Tags

  • CSS
  • ES6
  • Echarts
  • Git
  • HTML
  • JS
  • Java
  • React
  • Redux
  • SQL
  • Vue
  • Vuex
  • jQuery
  • 前端
  • 数据结构
  • 算法
  • 综合
  • 网络

Tag Cloud

CSS ES6 Echarts Git HTML JS Java React Redux SQL Vue Vuex jQuery 前端 数据结构 算法 综合 网络

Archives

  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • May 2018
  • April 2018
  • March 2018
  • February 2018
  • October 2017
  • March 2017
  • February 2017
  • April 2016
  • March 2016
  • February 2016
  • January 2016

Recent Posts

  • Java反射
  • Tomcat部署前端项目
  • Java序列化
  • Java泛型
  • Java枚举
© 2023 Infatuation    阁下是第99999个访客
首页 归档 图表 购物 半帘梦 个人中心