[进阶指南] Fragments( Day23 )

React 其中一种常见的使用情况是在一个 component 中回传多个 element,fragment 让你能够在不用增加额外 DOM 节点的情况下,重新组合 child component。

fragment 写法:

  1. <React.Fragment></React.Fragment> //只支援 key attribute
  2. 缩写写法 <></> //不支援 key attribute

在写一个元件的时候,必须在最外层包裹单一元素,但并不是每一次都会想要用一个实体的元素。以下举例:

function Article(props) {
 return <div> //不想多包一层 div
   <h3>Title{props.id}</h3>
   <p>content{props.id}</p>
 <div/>
}
  
function Book() {
    return (
      <ul>
       {
         [1, 2, 3].map((item) => {
                  return (
                    <li>
                      <Article id={item} />
                    </li>
                  )
          })
        
       }
      </ul>
     );
}
//略

可以用 React 提供的 <React.Fragment> 进行替代,功用有点像其他框架的 <template></template>,而 <React.Fragment> 也可以使用缩写 <></>

<React.Fragment> 使用 key attribute 的例子

function BookLists(props) {
  return (
      <table>
        <thead>
            <tr>
                <th colspan="2">我的书单</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                {props.items.map(item => (
                    <React.Fragment key={item.isbn}>
                      <td>{item.name}</td>
                      <td>{item.author}</td>
                    </React.Fragment>
                  ))}
            </tr>
        </tbody>
    </table>
  );
}

Codepen 完整程序码

以上一个简单介绍。

参考资料:
https://zh-hant.reactjs.org/docs/fragments.html


<<:  企划实现(22)

>>:  【Day22】隐写技术 ─ 工具实作篇(一)

Day2 工业控制网路 vs IT 资讯网路

工业控制网路 vs IT 资讯网路 管理目标 工业控制网路的设备需要高可用性,因为工厂设备若停摆,...

【D21】制作讯号灯#5:使用三大法人制作外资讯号灯

前言 制作了加权指数的,这次制作三大法人-外资的讯号灯,本次会做多单还是空单、留仓数量是否增加、留仓...

[Day14] Android - Kotlin笔记:LiveData在fragment重建时会重新呼叫两次的解决方法

原因: 在Activity中绑定一个ViewModel, Fragments间共用这个ViewMod...

Day 20 - 重新检视 mAP, F1, IoU, Precision-Recall 精准度

Day 20 - 重新检视 mAP, F1, IoU, Precision-Recall 精准度 A...

菸酒生的ARM之路-1

在介绍的时候有说到我是在爬文苹果电脑的时候注意到ARM的!不得不说,使用了两个多月下来,对於使用全新...