javascript - 在 react 路由器中的路由之间显示一个简单的加载指示器

标签 javascript reactjs redux react-redux react-router

我来自 AngularJS 世界,几天前开始使用 react-router 编写我的第一个 React 应用程序,在 AngularJS 中我这样做:

app.directive('Loading', function($rootScope, $timeout) {
    return {
        restrict: 'E',
        replace: true,
        template: '<p>Loading</p>'
        link: function(scope, element) {
            $rootScope.$on('$routeChangeStart', function(event, currentRoute, previousRoute) {
                element.removeClass('ng-hide');
            });

            $rootScope.$on('$routeChangeSuccess', function() {
                element.addClass('ng-hide');
            });
        }
    };
});

然后我只添加 <Loading></Loading> .所以现在在我的 React 应用程序中我有:

class App extends Component {
  render() {
    return (
       <Router>
        <div>
          <ul>
            <li><Link to="/">Home</Link></li>
            <li><Link to="/about">About</Link></li>
          </ul>

          <hr/>

          <Route exact path="/" component={Home}/>
          <Route path="/about" component={About}/>

        </div>
      </Router>


    );
  }
}

我的两个组件很简单:

class Home extends Component {
    render() {
        return (
            <h1>Home</h1>
        );
    }
}
class About extends Component {
    render() {
        return (
            <h1>About</h1>
        );
    }
}

我可以在不使用 reduxJS 的情况下执行此操作吗? ?

最佳答案

您可以在 React 中使用高阶组件以通用方式执行此操作。

看一个例子:

https://github.com/thejameskyle/react-loadable

关于javascript - 在 react 路由器中的路由之间显示一个简单的加载指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47104208/

相关文章:

javascript - 渐变过滤器可防止在没有文本的 IE9 DIV 中单击事件

node.js - PM2受管服务器导致跨域请求被阻止

javascript - 在react-redux组件中获取初始数据时显示加载器

reactjs - 如何将 react-redux 'useSelector' 与附加变量一起使用?

javascript - 如何同步不同频率的码流

javascript - 国际键盘上常用字符的键码

javascript倒计时器与数据库中的sql时间?

javascript - 未调用 enzyme 异步等待模拟函数

javascript - 函数仅在 React Native 中运行两次后才返回参数

reactjs - Redux/MobX - 我是否需要通过 React 中的 props 在子组件中传递数据?