javascript - 使用 webpack 代码拆分,如何加载 block 和 HTML 布局?

标签 javascript html reactjs webpack

我使用 webpack 构建 block ,按需加载(代码拆分);每个 block 都将 React 组件渲染成 DOM 元素 (divs)。我需要 HTML 来创建这些 div:我应该如何以及何时加载相应的 HTML?我应该如何按需加载 block ?

我使用 jQuery 的 load从容器中的文件插入 HTML 的函数 divs .另外我放了一个 <script>标记来告诉应该加载哪个 block ,但我发现与我的应用程序代码的其余部分相比,它很笨拙而且一点也不优雅。

有没有更简单的方法来做到这一点?

最佳答案

您应该使用require.ensure 进行动态路由加载。更好的是,如果您将项目设置为使用 Webpack 2 + Tree shaking,则可以使用 System.import

方法如下:

import App from 'containers/App';
function errorLoading(err) {
  console.error('Dynamic page loading failed', err);
}
function loadRoute(cb) {
  return (module) => cb(null, module.default);
}
export default {
  component: App,
  childRoutes: [
    {
      path: '/',
      getComponent(location, cb) {
        System.import('pages/Home')
          .then(loadRoute(cb))
          .catch(errorLoading);
      }
    },
    {
      path: 'blog',
      getComponent(location, cb) {
        System.import('pages/Blog')
          .then(loadRoute(cb))
          .catch(errorLoading);
      }
    }
  ]
};

您可以在这篇博文中获得完整指南:Automatic Code Splitting for React Router

关于javascript - 使用 webpack 代码拆分,如何加载 block 和 HTML 布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33639793/

相关文章:

javascript - 对输入字段创 build 置限制?

javascript - 如何更改复选框旁边的文本颜色

android - 使用react-native检查手机上是否安装了Metamask应用程序

javascript - 没有为嵌套组件调用 React 渲染方法

javascript - 读取和使用保存在 DB (LOB) 中的 XML

javascript - PHP 不解析 Javascript 创建的 HTML 表单

c# - 使一个页面成为另一个页面的子页面

Java Applet,适用于 Eclipse,不适用于 Chrome

html - CSS 表格单元格和 Bootstrap 的奇怪对齐问题

javascript - 如何使用 React 的上下文功能将 HTML5 Canvas 上下文传递给 this.props.children?