什么是Angular'ng-container'的React等价物

时间:2018-10-25 09:03:29

标签: html angular reactjs dom

我希望没有div元素,而是希望像Angular中的'ng-container'这样的元素避免DOM中无用的div元素。

什么是Angular'ng-container'的React等效项?

Explanation of ng-container

2 个答案:

答案 0 :(得分:4)

您可以使用React.Fragment

<React.Fragment>
    "Rest of elements here"
</React.Fragment>

答案 1 :(得分:2)

片段使您可以将子级列表分组,而无需向DOM添加额外的节点。

function ChildA() {
  return (
    <h5>Child A</h5>
  );
}

function ChildB() {
  return (
    <h5>Child B</h5>
  );
}

function ChildC() {
  return (
    <h5>Child C</h5>
  );
}

方法1: React Fragments帮助添加一个空容器来包装render方法中的子级列表。

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

方法2 一种常见的模式是组件通过用任何容器元素例如div,p

包装子元素来返回子列表。
render() {
  return (
     <div>
      <ChildA />
      <ChildB />
      <ChildC />
    </div>
  );
}

方法3 您可以使用一种新的较短的语法来声明片段。除了其他元素不支持键或属性外,您可以使用<>来使用<>。

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

方法4 React 16.0增加了对从组件的render方法返回元素数组的支持。 不用将子级包装在DOM元素中,您可以将它们放入数组中:

function App() {
  return (
    [
      <ChildA />,
      <ChildB />,
      <ChildC />
    ]

  );
}