react监听路由变化方法
    在React应用中,路由变化是非常常见的操作。当路由变化时,我们通常需要更新组件的数据、样式或者重新渲染一些组件。为了实现这些功能,我们需要监听路由变化。
    React 提供了多种路由库,比如 BrowserRouter、HashRouter 等。本文将以 BrowserRouter 为例,介绍 React 监听路由变化的几种方式。
    1. 使用 withRouter 高阶组件
    withRouter 是 React Router 提供的一个高阶组件,可以让非路由组件拥有路由组件的 props(比如 location、match、history)。我们可以通过监听 props.location 的变化来实现路由变化的监听。
    ```javascript
react router v6 文档    import React from 'react';
    import { withRouter } from 'react-router-dom';
    class ExampleComponent extends React.Component {
    componentDidUpdate(prevProps) {
    if (this.props.location !== prevProps.location) {
    console.log('路由变化了');
    }
    }
    render() {
    return <div>ExampleComponent</div>;
    }
    }
    export default withRouter(ExampleComponent);
    ```
    2. 使用 history.listen 方法
    history 是 React Router 提供的一个对象,包含了路由相关的信息和方法。我们可以通过 history.listen() 方法来监听路由变化。
    ```javascript
    import { createBrowserHistory } from 'history';
    const history = createBrowserHistory();
    history.listen((location, action) => {
    console.log('路由变化了');
    });
    ```
    3. 使用 onRouteChange 方法
    如果你使用的是 React Router v3.x,可以使用 onRouteChange 方法来监听路由变化。
    ```javascript
    import { Router, browserHistory } from 'react-router';
    function onRouteChange(prevState, nextState) {
    console.log('路由变化了');
    }
    <Router history={browserHistory} onRouteChange={onRouteChange}>
    ...
    </Router>
    ```
    总结
    在 React 应用中,监听路由变化是非常常见的操作。我们可以使用 withRouter 高阶组件、history.listen 方法或者 onRouteChange 方法来实现路由变化的监听。不同的方法适用于不同版本的 React Router,可以根据实际情况选择使用。