Właśnie zainstalowałem Vue i postępowałem zgodnie z kilkoma samouczkami, aby stworzyć projekt przy użyciu szablonu vue-cli webpack. Kiedy tworzy komponent, zauważam, że wiąże nasze dane wewnątrz następujących elementów:
export default {
name: 'app',
data: []
}
Podczas gdy w innych samouczkach widzę, że dane są powiązane z:
new Vue({
el: '#app',
data: []
)}
Jaka jest różnica i dlaczego wydaje się, że składnia między nimi jest inna? Mam problem z uzyskaniem działania „nowego kodu Vue” z wnętrza tagu, którego używam, z App.vue wygenerowanego przez vue-cli.
vue.js
vue-component
vue-cli
rockzombie2
źródło
źródło
Odpowiedzi:
Kiedy deklarujesz:
Jest to zazwyczaj Twoja główna instancja Vue, z której wywodzi się reszta aplikacji. Powoduje to zawieszenie się elementu głównego zadeklarowanego w dokumencie HTML, na przykład:
Druga składnia to deklaracja komponentu, który można zarejestrować i ponownie wykorzystać później. Na przykład, jeśli utworzysz pojedynczy składnik pliku, taki jak:
Możesz później zaimportować to i używać jak:
Pamiętaj również, aby zadeklarować swoje
data
właściwości jako funkcje, w przeciwnym razie nie będą one reaktywne.źródło
main.js
- tak naprawdę nie ma znaczenia, po prostu wiedz, że jest to punkt początkowy aplikacji, podobnie jakint main()
w przypadkuComponent.vue
plików C. zawsze będzie używaćexport default { ... }
składni. Dokumenty wykonują dobrą robotę, wyjaśniając różnice między komponentami, globalnym , lokalnym i pojedynczym plikiemexport default
służy do tworzenia lokalnej rejestracji komponentu Vue.Oto świetny artykuł, który wyjaśnia więcej na temat komponentów https://frontendsociety.com/why-you-shouldnt-use-vue-component-ff019fbcac2e
źródło
Pierwszy przypadek (
export default {...}
) to składnia ES2015 umożliwiająca udostępnienie do użytku niektórych definicji obiektów.Drugi przypadek (
new Vue (...)
) to standardowa składnia do tworzenia wystąpienia obiektu, który został zdefiniowany.Pierwsza z nich zostanie wykorzystana w JS do załadowania Vue, a każda z nich może zostać użyta do tworzenia komponentów i szablonów.
Więcej informacji można znaleźć pod adresem https://vuejs.org/v2/guide/components-registration.html .
źródło
Zawsze, gdy używasz
a jakimś przedmiotem
powyższe możesz importować w dowolnym miejscu za pomocą
import
lubmodule.js
i tam możesz użyć jakiegoś obiektu. Nie jest to ograniczenie, że jakiś obiekt będzie obiektem, tylko że może to być również funkcja, klasa lub obiekt.Kiedy powiesz
tak jak powiedziałeś
Tutaj inicjujesz obiekt klasy Vue.
Mam nadzieję, że moja odpowiedź wyjaśnia twoje pytanie ogólnie i bardziej wyraźnie.
źródło
źródło