reactjs - react 路由器 : Show progress while loading

标签 reactjs react-router

我想在从一条路线切换另一条路线时显示进度条,我找到了这个包:nprogress ,取得类似 YouTube 的进步。

我的问题是使用 React Router 来实现这个。我不知何故需要在每次路由开始时执行 NProgress.start(); ,并在加载时执行 NProgress.done();

是否有更好的方法(例如路由更改之间的中间件或路由器的路由监听器),然后遍历每个路由并在 onEnter 上执行 start() > 和组件的 DidMount() 上的 done()

最佳答案

您可以简单地从 onEnter 中的 NProgress.start() 开始处理程序并完成于 getComponentgetComponents您可以在其中异步加载组件,例如使用 Webpack 的 require.ensure

类似这样的事情:

  <Route
    path="path"
    onEnter={() => {
      NProgress.start();
    }}
    getComponent={(nextState, cb) => {
      require.ensure([], (require) => {
        const Component = require('./path/to/Component').default;
        cb(null, Component);
        NProgress.done();
      });
    }}
  />

关于reactjs - react 路由器 : Show progress while loading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38234993/

相关文章:

javascript - 如何使用 react.js 在 Apache 服务器上生成动态 &lt;meta&gt; 标签

javascript - react + next js中的位置未定义错误?

javascript - React-router browserHistory.push 不重定向

javascript - React 项目中正确路由的问题

javascript - 使用 React Router v4.1 的分页问题

jquery - 使用哪个 URL 从 React 组件调用 symfony 中的 API 函数,所有这些都在同一个应用程序中?

javascript - ReactJS 和自动对焦

ios - 在没有 ssl 证书的情况下在 WebView 中打开 Https URL

javascript - 为什么 React 会以不变的状态一遍又一遍地渲染我的组件?

reactjs - 这是使用钩子(Hook)保护 React 中的路由的正确方法吗?