我试图弄清楚当用户使用后退/前进浏览器按钮导航时如何让我的 React SPA 应用程序保持状态。例如,用户正在填写表格,然后他来回移动,表格会自动恢复。
我查看了许多 JavaScript 路由器,但似乎没有一个能正确解决这个问题......(甚至根本没有)。
目前我正在使用 React Router 4,这是我采用的模式:
- 当以编程方式离开页面时,我首先使用
history.replace(this.state)
;保存当前页面的状态;然后我移出页面history.push(newLocation)
- 创建页面组件时 (
componentWillMount
) 我检查this.props.location.state !== undefined
,如果是,我用this.setState(this.props.location.state)
我的问题是:上述模式是否正确?建议?有没有更好的和广泛采用的方法?