纯成分,表达成分和哑成分都是一样的吗?

时间:2019-03-10 16:48:44

标签: reactjs redux

纯粹,表象和愚蠢的成分都一样吗?

基本上是无状态的功能组件,它们与“外观”而不是“工作原理”有关,并且从未连接到Redux存储吗?

1 个答案:

答案 0 :(得分:2)

从根本上讲,任何不更改输入数据且不依赖于外部状态(例如数据库,DOM或全局变量)并且始终为同一输入提供相同输出的函数都是< strong>纯功能

const add = (a, b) => a + b //pure function

在React中,呈现组件哑组件是仅呈现HTML的组件。他们唯一的责任是向DOM呈现内容。这些组件通常只是Javascript函数。他们没有内部状态要管理。如果询问他们,他们将不知道如何更改所显示的数据。无知是幸福。 在具有Redux功能的应用中,此类组件不会与Redux存储区进行交互。

但是,他们从容器组件智能组件)接受道具。 基于类的组件,在其Constructor()函数中定义了自己的状态

class App extends Component {
  constructor(props){
    super(props);
    this.state = {pictures : []};
  }
}

由于容器组件具有智能化的负担,因此它们是跟踪状态并关心应用程序工作方式的组件。他们还指定了表示组件应通过传递给道具的数据和行为。如果表示组件具有任何交互性(如按钮),则它将调用由道具赋予的道具功能容器组件。但是 container组件是向Redux商店发送操作的组件。