路由监听,我们可能会使用到this.props.history.listen;
使用:
在页面挂载完监听
componentDidMount() {
this.props.history.listen(route => {
//route 当前路由的属性
//执行相应操作
if (this.props.location.pathname !== route.pathname) {
// 路由发生了变化
}
});
}
解绑listen事件:
事实上this.props.history.listen会返回一个函数,我们运行返回的这个函数即可销毁listen监听:
UNLISTEN = null;
//listen
componentDidMount() {
this.UNLISTEN = this.props.history.listen(route => {
//执行相应操作
if (this.props.location.pathname !== route.pathname) {
// 路由发生了变化
}
});
}
//unlisten
componentWillUnmount() {
this.UNLISTEN && this.UNLISTEN()
}