码迷,mamicode.com
首页 > 其他好文 > 详细

react之Fragment

时间:2019-12-02 23:22:18      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:fun   map   code   警告   wrapper   列表   ems   app   err   

React中的常见模式是一个组件返回多个元素。Fragments允许将子列表分组,而无需向DOM添加额外节点

render() {
  return (
    <React.Fragment>
      <ChildA />
      <ChildB />
      <ChildC />
    </React.Fragment>
  );
}

动机

不想打乱原有的DOM结构或者不想在组件外层包裹额外的元素的时候可以使用Fragments,Fragments不会生成额外的DOM节点

用法

1. 显式用法

class Columns extends React.Component {
    render() {
        return (
            <React.Fragment>
                <td>Hello</td>
                <td>World</td>
            </React.Fragment>
        )
    }
}
import {Fragment} from 'react';
……
return (
    <Fragment>
        <WrappedComponent {...newProps} ref={this.wrapperRef} />
        <GoTop imgUrl />
    </Fragment>
);
……

使用显示<React.Fragment>语法声明的片段可能具有key,key是目前唯一可以传递给Fragment的属性

function Glossary(props) {
  return (
    <dl>
      {props.items.map(item => (
        // 没有`key`,React 会发出一个关键警告
        <React.Fragment key={item.id}>
          <dt>{item.term}</dt>
          <dd>{item.description}</dd>
        </React.Fragment>
      ))}
    </dl>
  );
}

2. 短语法

注意:短语法用法不支持key或属性

class Columns extends React.Component {
  render() {
    return (
      <>
        <td>Hello</td>
        <td>World</td>
      </>
    );
  }
}

react之Fragment

标签:fun   map   code   警告   wrapper   列表   ems   app   err   

原文地址:https://www.cnblogs.com/let423/p/11973845.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!