【问题标题】:How to include a vue component only when required in spa?如何仅在 spa 中需要时才包含 vue 组件?
【发布时间】:2016-11-05 06:55:14
【问题描述】:

我已经制作了组件并保存到不同的“.vue”文件中,并在 elixir / gulp 和 browserify 的帮助下编译它们。

我将所有组件都包含在一个 js 文件中,

我想知道如何减少包含应用程序所有组件的每个页面中每次调用的“build.js”文件的大小。

了解这种仅在需要时才包含组件的方法会很有帮助。

这个问题与 Vue-router 无关

我是 vue.js 的新手

【问题讨论】:

  • 这就是它的工作方式。你应该缓存你的 build.js,这样它就不会被每个请求调用。

标签: javascript vue.js laravel-elixir vue-component


【解决方案1】:

这是你的答案:http://router.vuejs.org/en/lazy.html

这在 Webpack 中是原生支持的。例子是:

require(['./MyComponent.vue'], function (MyComponent) {
  // code here runs after MyComponent.vue is asynchronously loaded.
})

如果你想用 Broswerify 来做,你需要 https://github.com/substack/browserify-handbook/blob/master/readme.markdown#partition-bundle 。代码如下:

router.map({
  '/async': {
    component: function (resolve) {
      loadjs(['./MyComponent.vue'], resolve)
    }
  }
})

【讨论】:

  • 路由器中的代码拆分怎么样?当将组件映射到特定路径时,我们可以使用一个文件,并且在任何需要的地方对组件的所有拆分和使用都将由编译器负责。
  • 是的,您可以在第二个示例中看到它在路由器文件中,并且仅在使用时才使用loadjs函数加载组件。
  • @Jeff 你有 browserify partition-bundle 配置的例子吗?我似乎无法让它工作。
猜你喜欢
  • 2023-03-18
  • 2019-03-04
  • 2011-01-22
  • 2021-04-23
  • 1970-01-01
  • 1970-01-01
  • 2014-05-12
  • 2020-05-12
  • 1970-01-01
相关资源
最近更新 更多