2016-07-12 15 views
9

Ich bin neu in Vue Js und habe einige Fragen, wenn ich es lerne.Unterschiede zwischen Vue-Instanz und Vue-Komponente?

Ich bin jetzt ein wenig verwirrt über die Beziehung zwischen seiner Instanz und Komponente. Soweit ich gelernt habe, sollte jede von vue erstellte App nur eine Instanz und nur eine Instanz haben, sie kann bei Bedarf so viele Komponenten enthalten, wie Sie möchten. Aber kürzlich habe ich eine Demo gesehen, und in dieser Demo gibt es mehr als eine Instanz.

Also meine Frage ist, ist das in Ordnung, mehrere Intents in einer App zu haben (der Demo-Code funktioniert gut, aber ist das der richtige Weg)? Was ist die beste Vorgehensweise, um Instanz und Komponente in der vue App zu verwenden?

Antwort

6

Es ist in Ordnung, zwei Instanzen im selben Projekt zu haben, aber das wollen Sie wahrscheinlich nicht tun.

Ein gutes Szenario besteht darin, eine Hauptinstanz zum Steuern Ihrer App zu haben, insbesondere wenn Sie eine Single Page Application (SPA) erstellen. Verwenden Sie dann so viele Komponenten wie Sie möchten.

Komponenten sind eine gute Möglichkeit, Code wiederzuverwenden und zu organisieren, und mit Vue.js ist es sehr einfach, zwischen Ihren Komponenten und Ihrer "Haupt" Vue-Instanz zu kommunizieren.

+0

Ich baue eine große Unternehmensanwendung mit Vue und wir haben nur eine Instanz. Ich bin mir nicht sicher, was der Anwendungsfall wäre, um mehr als einen zu haben ... aber ich bin noch nicht darauf gestoßen. –

+0

@EvanButler Ja, ich habe auch nicht. – crabbly

+1

Ich verwende mehrere Instanzen, um ein vorhandenes SPA inkrementell auf Vue zu migrieren. – nogridbag

4

Die Vue-Instanz kann mit einem Element verknüpft und bearbeitet werden, das bereits existiert.

Vue-Komponente besser geeignet, um neue Elemente zu erstellen und überall wiederzuverwenden.

5

Es hängt sehr von Ihrer Situation ab.

Ich arbeite an einem großen Webprojekt, das kein SPA ist. Wir haben eine Vue-Instanz für jedes "Silo" der Anwendung. Wir wechseln langsam ein älteres Projekt von einem meist jQuery-Frontend, so dass es möglich ist, dass wir uns auf eine einzige Vue-Instanz konzentrieren können, aber wir haben keine Probleme mit mehreren Instanzen. Die Leichtigkeit, mit der Vue in bestehenden Projekten verwendet werden konnte, war einer der wichtigsten Faktoren bei der Auswahl von Vue gegenüber einer anderen Bibliothek, wie z.

Ich habe einen anderen Ansatz mit grüner Entwicklung, eine Instanz und viele Komponenten genommen.

+0

Meinst du, der "Silo" ist Komponente? – aircraft

0

Es gibt etwas gemeinsam und einen Unterschied zwischen Vue-Instanz und Vue-Komponente.

  1. Von Vue docs:

alle Vue Komponenten sind auch Vue Instanzen und akzeptieren, so dass die gleichen Optionen Objekt (mit Ausnahme einiger wurzelspezifischen Optionen).

Die Vue Instanzen akzeptieren die Daten wie el, router, die Vue-Komponenten nicht. Die Eigenschaft data in Vue-Instanzen ist ein Objekt, aber in Vue müssen Komponenten eine Funktion sein.

  1. Das Ziel Design ist anders:

Vue Instanz ist Vue Anwendungsstarter, Vue Komponente eine Erweiterung der Vue-Instanz ist.

Vue-Komponenten können Elemente erstellen und an vielen ähnlichen Orten verwenden.Dies ist Vue charakteristisch für Komponentation hauptsächlich reflektieren Punkt.

Verwandte Themen