2016-07-03 6 views
1

Я создал компоненты и сохранил их в разных файлах «.vue» и скомпилировал их с помощью elixir/gulp и, конечно же, обозреватель.Как включить компонент vue только в случае необходимости в спа?

Я в том числе всех компонентов в один JS файл,

Я хочу знать, что, как уменьшить размер файла «build.js», который называется каждый раз, когда на каждой странице, которая содержит все компоненты приложение.

Было бы полезно знать такой способ включения компонентов только тогда, когда они необходимы.

Этот вопрос не относится к Вью-маршрутизатор

Я новичок в vue.js

+0

То, как это работает. Вы должны кэшировать свой файл build.js, чтобы он не вызывался при каждом запросе. – bobbybackblech

ответ

2

Вот ваш ответ: 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) 
    } 
    } 
}) 
+0

Как насчет разделения кода в маршрутизаторе? при сопоставлении компонента с конкретным маршрутом мы можем работать с одним файлом, и все расщепление и использование компонентов везде, где требуется, будут заботиться о компиляторах. – Puneet

+0

Да, вы можете видеть во втором примере, что он находится в файле маршрутизатора и с помощью функции loadjs загружать компонент только тогда, когда он используется. – Jeff

+0

@Jeff у вас есть пример для браузера config-bundle config? Кажется, я не могу заставить его работать. – eljefedelrodeodeljefe