Javascript 使用redux时,应首选哪种生命周期方法?
从redux store in props获取数据时,应首选哪种生命周期方法 我不确定您的组件是如何编写的,但遵循的一般模式是将组件连接到redux应用商店,并将应用商店中的值映射到组件道具 从那里,您的组件将订阅存储中的数据,您可以在Javascript 使用redux时,应首选哪种生命周期方法?,javascript,reactjs,redux,react-redux,Javascript,Reactjs,Redux,React Redux,从redux store in props获取数据时,应首选哪种生命周期方法 我不确定您的组件是如何编写的,但遵循的一般模式是将组件连接到redux应用商店,并将应用商店中的值映射到组件道具 从那里,您的组件将订阅存储中的数据,您可以在componentDidMountlifecycle钩子上访问这些数据,并且可以在componentdiddupdate钩子中访问存储的任何其他更新。同样,道具上的任何更改都将触发组件上的重新渲染 const mapStateToProps = (state) =
componentDidMount
lifecycle钩子上访问这些数据,并且可以在componentdiddupdate
钩子中访问存储的任何其他更新。同样,道具上的任何更改都将触发组件上的重新渲染
const mapStateToProps = (state) => ({
data: state.data,
});
class Checkbox extends React.Component {
componentDidMount() {
const { data } = this.props;
}
componentDidUpdate(prevProps, prevState,) {
}
}
export default connect(mapStateToProps)(Checkbox);
我不确定您的组件是如何编写的,但遵循的一般模式是将您的组件连接到redux商店,并将商店中的值映射到组件道具 从那里,您的组件将订阅存储中的数据,您可以在
componentDidMount
lifecycle钩子上访问这些数据,并且可以在componentdiddupdate
钩子中访问存储的任何其他更新。同样,道具上的任何更改都将触发组件上的重新渲染
const mapStateToProps = (state) => ({
data: state.data,
});
class Checkbox extends React.Component {
componentDidMount() {
const { data } = this.props;
}
componentDidUpdate(prevProps, prevState,) {
}
}
export default connect(mapStateToProps)(Checkbox);
通常,您不需要任何生命周期方法,但这取决于您的用例以及您希望如何使用来自redux store的数据。通常,流程可以如下所示:
class YourComponent extends React.Component {
componentDidMount() {
console.log("You will get your data here:",this.props.data);
}
componentDidUpdate(prevProps, prevState,) {
//Here you can compare data if it is changed or not.
if(prevProps.data !== this.props.data){
console.log("Your data is changed.");
}
}
}
//Map your state to props
const mapStateToProps = store =>{
const data = store.data
return {
data
}
};
//Connect your component with redux store.
export default connect(mapStoreToProps)(YourComponent);
通常,您不需要任何生命周期方法,但这取决于您的用例以及您希望如何使用来自redux store的数据。通常,流程可以如下所示:
class YourComponent extends React.Component {
componentDidMount() {
console.log("You will get your data here:",this.props.data);
}
componentDidUpdate(prevProps, prevState,) {
//Here you can compare data if it is changed or not.
if(prevProps.data !== this.props.data){
console.log("Your data is changed.");
}
}
}
//Map your state to props
const mapStateToProps = store =>{
const data = store.data
return {
data
}
};
//Connect your component with redux store.
export default connect(mapStoreToProps)(YourComponent);
您可以使用componentdidmount并在要显示数据的部分显示加载程序。您能否解释您的用例,这取决于您的用例,因为您可以通过使用shouldComponentUpdate阻止生命周期以避免重新渲染,但检查嵌套较深的对象或数据结构会导致性能不佳。ComponentWillReceiveProps将在React 17中被弃用,但它仍使用不安全前缀。如果需要检查,则可以使用getDerivedStateFromProps。这完全取决于用例,如果您请求初始加载数据以获得一些响应,您可以在ComponentDidMount中调用它,您不需要添加任何生命周期方法来从redux存储获取数据。您的组件应该使用
react redux
包订阅redux store,只要状态发生任何变化,组件就会获得更新的状态。您可以使用componentdidmount并在要显示数据的部分显示加载程序。您能解释一下您的用例吗,这取决于您的用例是什么,由于您可以通过使用shouldComponentUpdate来阻止生命周期,以避免重新渲染,但检查深度嵌套的对象或数据结构会导致性能低下。ComponentWillReceiveProps将在React 17中被弃用,但它仍使用不安全前缀。如果需要检查,则可以使用getDerivedStateFromProps。这完全取决于用例,如果您请求初始加载数据以获得一些响应,您可以在ComponentDidMount中调用它,您不需要添加任何生命周期方法来从redux存储获取数据。您的组件应该使用react redux
包订阅redux store,只要状态发生任何变化,组件就会获得更新状态。因此,当使用redux作为道具时,应该经常使用componentDIdUpdate和componentDidMount这两种生命周期方法?是的,这完全取决于您的用例。如果要将组件与存储连接,您的组件将在道具中获取数据,如果您想在数据更新后检查条件,您可以确保使用componentDIdUpdate。因此,componentDIdUpdate和componentDidMount是使用redux for props时应该经常使用的生命周期方法?是的,这完全取决于您的用例。如果您将组件与store连接,您的组件将在props中获取数据,并且您希望在数据更新后检查条件,您可以使用componentDIdUpdate来确保。