this.props.history.listen路由监听与取消监听

简介: 在React中使用`this.props.history.listen`进行路由变化监听,并在组件卸载时通过调用返回的函数取消监听,以避免不必要的回调执行或内存泄漏。

路由监听,我们可能会使用到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()
    }
目录
相关文章
|
2月前
Twaver-HTML5基础学习(30)监听事件_network绘制监听_network视图操作监听_鼠标事件的监听
本文介绍了如何在Twaver-HTML5中监听网络视图操作事件,包括视图绘制、鼠标事件以及获取鼠标下的网元等。
39 1
Twaver-HTML5基础学习(30)监听事件_network绘制监听_network视图操作监听_鼠标事件的监听
|
1月前
|
API
Harmony 状态监听 @Monitor和@Computed
Harmony 状态监听 @Monitor和@Computed
46 0
|
4月前
|
JavaScript API
vue3【实用教程】侦听器 watch,自动侦听 watchEffect(),$watch,手动停止侦听器
vue3【实用教程】侦听器 watch,自动侦听 watchEffect(),$watch,手动停止侦听器
87 0
|
6月前
监听开机广播
监听开机广播
39 1
|
6月前
v-on监听多个方法
v-on监听多个方法
36 0
|
6月前
|
JavaScript
vue中watch监听路由传来的参数变化问题
vue中watch监听路由传来的参数变化问题
115 0
|
6月前
vue3 watch 监听多值以及深度监听用法
vue3 watch 监听多值以及深度监听用法
1945 0
|
6月前
v-on能否监听多个事件?
v-on能否监听多个事件?
80 0
|
6月前
当监听的属性是对象的引用时,`watch`选项是否会触发监听?
当监听的属性是对象的引用时,`watch`选项是否会触发监听?
39 2
|
6月前
|
JavaScript
JS事件监听部分总结以及用法
JS事件监听部分总结以及用法
79 1