Javascript 使用React而不使用状态

Javascript 使用React而不使用状态,javascript,dom,optimization,reactjs,state,Javascript,Dom,Optimization,Reactjs,State,我正在构建一个应用程序的UI,我正在探索在不使用状态的情况下更新UI。下面的断言是否大致正确 '我们不需要状态,因为当状态中的某些内容发生更改时,它所做的一切都是在组件上自动调用render方法。我们可以通过调用相关组件上的render方法来实现相同的实现 我们仍然可以实现React的所有相同好处(虚拟DOM、渲染、绘画优化等)”从技术上讲,您不需要使用React的内部组件状态来构建React应用程序是正确的。当然,数据需要存在于某个地方,因此您需要一种机制,当数据发生变化时,该机制可以将所有数

我正在构建一个应用程序的UI,我正在探索在不使用状态的情况下更新UI。下面的断言是否大致正确

'我们不需要状态,因为当状态中的某些内容发生更改时,它所做的一切都是在组件上自动调用render方法。我们可以通过调用相关组件上的render方法来实现相同的实现

我们仍然可以实现React的所有相同好处(虚拟DOM、渲染、绘画优化等)

从技术上讲,您不需要使用React的内部组件状态来构建React应用程序是正确的。当然,数据需要存在于某个地方,因此您需要一种机制,当数据发生变化时,该机制可以将所有数据传递到顶级组件(在该组件中,数据将向下流到所有其他组件)

这是flux背后的基本思想(以及许多其他设计用于提供外部反应状态存储的模式)。您有一个或多个存储,这些存储在其数据更改时提供更改事件。然后,数据通过道具传递到应用程序中

function render(data) {
  ReactDOM.render(
    <Application data={data} />,
    containerNode
  )
}

myDataStore.on('change', render);
函数渲染(数据){
ReactDOM.render(
负责从存储中获取数据并将其传递给其子级的组件。有时,将容器放在组件树最顶端以外的位置是有意义的(例如,一个应用程序中可能有多个容器)
  • 可重用的/“呈现式”组件,不连接到数据存储,但提供一些其他好处(如黑盒样式或交互式小部件)。在这些情况下,将任何非特定于应用程序的状态保留在组件内部通常是有意义的

  • 任何应用程序都需要“状态”,没有“状态”你就没有数据,没有数据你什么都做不了。你说的“没有状态”是什么意思?@MadaraUchiha我对React.js很具体。React组件可以有一个存储值的不可变状态。只要状态发生变化,该组件就会自动重新呈现。好的,你打算如何呈现没有这种状态的组件?我想使用道具?React 0.14使无状态组件的使用变得更容易。我最近看到了很多关于这方面的讨论。这是我读到的一篇文章的链接。谢谢@Micheletilley,我刚刚在DiscussReact论坛上的评论中问了这个问题。这里的链接是:任何进一步的指导都将不胜感激。我采纳了你提到的第一点。也就是说,将有一些顶级conta谢谢。接受这个答案,因为这个问题没有进一步的讨论。