有谁有一个好的定义state在网络应用程序的上下文中?
更具体地说:什么是state在 React 的上下文中意味着——这与第一个定义有什么不同吗?
我看到“状态”这个术语在 React 开发中被大量使用,但我一直无法找到一个可靠、简洁的定义。
两种情况(React 和 Web 应用程序)上下文中的状态是相同的。
From 维基百科 https://en.wikipedia.org/wiki/State_(computer_science)
在信息技术和计算机科学中,如果程序旨在记住先前的事件或用户交互,则该程序被描述为有状态的。记住的信息称为系统的状态。
该引文的重要部分是记住之前的事件或用户交互.
在网络应用程序中
状态通常存储在数据库中的某个位置。 Web 应用程序从数据库中检索“状态”(数据),呈现一个视图,允许用户interact与状态,然后将新的“状态”(数据)发送回数据库。
In react
React 可以被认为是向用户呈现应用程序的“状态”。从某处检索数据,React 将数据(状态)显示给用户,允许用户修改它,然后将其发送回找到它的位置(记住)。
然而,当人们在 React 上下文中谈论“状态”时,他们通常指的是当用户忙于与之交互时,React 保存在内存中的数据或交互的内部表示。
一个保存某种状态的简单反应组件:
class Toggle extends React.Component {
constructor(props) {
super(props);
this.state = {
userName: 'Leeloo'
};
// This binding is necessary to make `this` work in the callback
this.handleClick = this.handleClick.bind(this);
}
handleClick() {
const name = (this.state.userName === 'Leeloo') ? 'Korben' : 'Leeloo'
this.setState({
userName: name
})
}
render() {
return ( <
button onClick = {
this.handleClick
} > {
this.state.userName
} <
/button>
);
}
}
ReactDOM.render( < Toggle / > , document.getElementById("root"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>
在上面的示例中,组件创建一些状态并将其存储在类的“state”属性中。
它正在记住它的内部状态。
当组件呈现时,它会查找存储在状态中的值并将其显示在按钮标签上。单击按钮时, this.state 会更新以“记住”单击按钮的事件。
在功能齐全的 Web 应用程序中,您将从数据库中检索数据,将该数据存储在状态中,允许用户与其交互,然后将该数据发送回数据库。
例如,您可能会显示用户个人资料页面,用户更改其姓名、密码、描述等...您将存储他们在该页面上所做的所有更改的“状态”,直到他们单击提交按钮。然后,您可以收集组件状态的所有更改并将其发送回数据库进行存储(记住)。
此外,您可能希望将状态存储在反应组件中,以描述应用程序的外观应如何基于与其交互。例如,一个InputBox
组件可能有一个 hasError 状态,当 true 时,向组件添加红色边框。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)