鍍金池/ 問答/HTML/ 為什么react-loadable導(dǎo)致項(xiàng)目更改文件時刷新巨慢?

為什么react-loadable導(dǎo)致項(xiàng)目更改文件時刷新巨慢?

我有個項(xiàng)目這么寫的

const routes = [{component: 'a'}, {component: 'b'}] 
routes.forEach(data => {
  data.cmp = Loadable({
  loader: () => import('./Approve/' + data.component),
  loading: () => <Loading />
 })
})
//jsx
<Switch>
  <Route path="/login" component={Login} />
  <Route path="/" render={(props) => {
    return (
      <CoreLayout>
        <Content>
        {routes.map(route => {

          return (
            <Route key={route.component} path={'/' + route.component} component={route.cmp} />
          )
        }) }
        </Content>
      </CoreLayout>
    )
  }} />
</Switch>

在這種寫法下面修改文件刷新頁面很慢大概30秒,如果改成下面這種寫法只要5秒

const a = Loadable({
 loader: () => import('./Approve/a'),
 loading: Loading,
});

const b = Loadable({
 loader: () => import('./Approve/b'),
 loading: Loading,
});

<Switch>
  <Route path="/login" component={Login} />
  <Route path="/" render={(props) => {
    return (
      <CoreLayout>
        <Content>
          <Route  path={'/applyFillIn'} component={applyFillIn} />
          <Route  path={'/processMonitorOffline'} component={processMonitorOffline} />
        </Content>
      </CoreLayout>
    )
  }} />
</Switch>

實(shí)際項(xiàng)目中routes是個很長的數(shù)組
但我不明白兩種寫法為什么會造成這種差距,我理解應(yīng)該是一樣的,難道webpack編譯的時候區(qū)分對待這兩種寫法嗎?

我不想一個個地import組件

回答
編輯回答
下墜

不要循環(huán)中import外部資源,也不要調(diào)用接口。
js是單線程?。。。?!

2017年3月14日 05:19
編輯回答
純妹

為什么不并行呢?

Loadable.Map({
  loader: {
    Bar: () => import('./Bar'),
    i18n: () => fetch('./i18n/bar.json').then(res => res.json()),
  },
  render(loaded, props) {
    let Bar = loaded.Bar.default;
    let i18n = loaded.i18n;
    return <Bar {...props} i18n={i18n}/>;
  }
});
2017年6月21日 03:47