何时使用容器以及何时传递道具?

时间:2016-08-20 16:03:53

标签: reactjs redux

我是Redux的新手,我正在做很多阅读。

我不完全理解使用容器和不使用容器之间的区别。如果我有一个包含DataSelect组件的Attribute组件,我可以:

  1. 在Attribute容器中定义方法/数据,并将它们作为props传递给DataSelect组件。
  2. 使用容器包装DataSelect并从Store中填充所需内容。
  3. 没有DataSelect的容器:

      // import ...
      import DataSelect from './components/DataSelect';
    
      // render ...
      <DataSelect dataset={ this.props.dataset } />
    

    使用DataSelect的容器:

      // import ...
      import DataSelect from './containers/DataSelect';
    
      // render ...
      <DataSelect />
    

    让我感到困惑的是,第二种方法意味着组件层次结构并不意味着很多,所有包含的组件直接处理商店。谁能帮我理解差异呢?

    更新

    性能方面,如果我准备的这个图表是正确的*,似乎使用容器可以减少DOM比较,是不是?在左侧,数据集中的状态更改将触发检查以查看是否应呈现整个属性组件(+子项)。在右侧,数据集的更改只会检查DataSelect组件是否应该呈现。这样对吗?如果是这样,使用容器是否有显着的性能优势?

    *图: redux diagram

0 个答案:

没有答案