纯粹,表象和愚蠢的成分都一样吗?
基本上是无状态的功能组件,它们与“外观”而不是“工作原理”有关,并且从未连接到Redux存储吗?
答案 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商店发送操作的组件。