Acabo de instalar Vue y he estado siguiendo algunos tutoriales para crear un proyecto usando la plantilla de paquete web vue-cli. Cuando crea el componente, noto que une nuestros datos dentro de lo siguiente:
export default {
name: 'app',
data: []
}
Mientras que en otros tutoriales veo datos vinculados desde:
new Vue({
el: '#app',
data: []
)}
¿Cuál es la diferencia y por qué parece que la sintaxis entre los dos es diferente? Tengo problemas para que el código 'nuevo Vue' funcione desde el interior de la etiqueta que estoy usando desde el App.vue generado por el vue-cli.
vue.js
vue-component
vue-cli
rockzombie2
fuente
fuente
Respuestas:
Cuando declaras:
Por lo general, esa es la instancia raíz de Vue de la que desciende el resto de la aplicación. Esto cuelga del elemento raíz declarado en un documento html, por ejemplo:
La otra sintaxis está declarando un componente que puede registrarse y reutilizarse más tarde. Por ejemplo, si crea un único componente de archivo como:
Luego puede importar esto y usarlo como:
Además, asegúrese de declarar sus
data
propiedades como funciones, de lo contrario no serán reactivas.fuente
main.js
, realmente no importa, solo sepa que es el punto de partida de la aplicación, comoint main()
en losComponent.vue
archivos C. siempre se usará laexport default { ... }
sintaxis. Los documentos hacen un buen trabajo explicando las diferencias entre componentes, global , local y un solo archivoexport default
se usa para crear un registro local para el componente Vue.Aquí hay un gran artículo que explica más sobre los componentes https://frontendsociety.com/why-you-shouldnt-use-vue-component-ff019fbcac2e
fuente
El primer caso (
export default {...}
) es la sintaxis de ES2015 para que alguna definición de objeto esté disponible para su uso.El segundo caso (
new Vue (...)
) es la sintaxis estándar para crear instancias de un objeto que se ha definido.El primero se usará en JS para arrancar Vue, mientras que cualquiera se puede usar para construir componentes y plantillas.
Consulte https://vuejs.org/v2/guide/components-registration.html para obtener más detalles.
fuente
Cada vez que usas
y algún objeto es
lo anterior puede importar en cualquier lugar usando
import
omodule.js
y allí puede usar algún objeto. Esto no es una restricción de que algún objeto será un objeto, sino que también puede ser una función, una clase o un objeto.Cuando tu dices
Como dijiste
Aquí estás iniciando un objeto de clase Vue.
Espero que mi respuesta explique su consulta en general y de manera más explícita.
fuente