2016-07-03 2 views
1

J'ai fait des composants et enregistré dans différents fichiers '.vue' et les compiler avec l'aide d'elixir/gulp et bien sûr de browserify.Comment inclure un composant vue uniquement lorsque requis dans le spa?

Je comprend tous les composants dans un seul fichier js,

Je veux savoir que la façon de réduire la taille du fichier « build.js » qui est appelé à chaque fois dans chaque page qui contient tous les composants de l'application.

Il serait utile de connaître une telle manière d'inclure des composants seulement quand ils ont exigé.

Cette question n'a rien à voir Vue-routeur

Je suis nouveau à vue.js

+0

C'est comme ça que ça fonctionne. Vous devriez mettre en cache votre build.js afin qu'il ne soit pas appelé à chaque requête. – bobbybackblech

Répondre

2

Voici votre réponse: http://router.vuejs.org/en/lazy.html

Ceci est supporté nativement dans Webpack. L'exemple est:

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

Si vous voulez le faire avec Broswerify, vous aurez besoin https://github.com/substack/browserify-handbook/blob/master/readme.markdown#partition-bundle. Le code ressemble à:

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

Qu'en est-il de la division du code dans le routeur? Lors de la mise en correspondance du composant avec une route particulière, nous pouvons travailler avec un fichier et tout le découpage et l'utilisation des composants, partout où cela est nécessaire, seront pris en charge par les compilateurs. – Puneet

+0

Oui, vous pouvez le voir dans le second exemple dans le fichier du routeur et utiliser la fonction loadjs pour charger le composant uniquement lorsqu'il est utilisé. – Jeff

+0

@Jeff auriez-vous un exemple pour la configuration browser-bundle de browserify? Je n'arrive pas à le faire fonctionner. – eljefedelrodeodeljefe