Descubra cómo Vue le ayuda a crear un único archivo que es responsable de todo lo que se refiere a un único componente, centralizando la responsabilidad por la apariencia y el comportamiento.
Un componente de Vue se puede declarar en un archivo JavaScript (.js
) como esto:
Vue.component('component-name', {
/* options */
})
o tambien:
new Vue({
/* options */
})
o se puede especificar en un.vue
expediente.
los.vue
El archivo es bastante bueno porque te permite definir
- Lógica de JavaScript
- Plantilla de código HTML
- Estilo CSS
todo en un solo archivo, y como tal obtuvo el nombre deComponente de archivo único.
He aquí un ejemplo:
<template>
<p>{{ hello }}</p>
</template>
<script>
export default {
data() {
return {
hello: ‘Hello World!’
}
}
}
</script>
<style scoped>
p {
color: blue;
}
</style>
Todo esto es posible gracias al uso de webpack. La CLI de Vue hace que esto sea muy fácil y compatible desde el primer momento..vue
los archivos no se pueden usar sin una configuración de paquete web y, como tal, no son muy adecuados para aplicaciones que solo usan Vue en una página sin ser una aplicación completa de una sola página (SPA).
Dado que los componentes de un solo archivo dependen de Webpack, obtenemos de forma gratuita la posibilidad de utilizar funciones web modernas.
Su CSS se puede definir usando SCSS o Stylus, la plantilla se puede construir usando Pug, y todo lo que necesita hacer para que esto suceda es declarar a Vue qué preprocesador de lenguaje va a usar.
La lista de preprocesadores compatibles incluye
- Mecanografiado
- SCSS
- Hablar con descaro a
- Menos
- PostCSS
- Doguillo
Podemos usar JavaScript moderno (ES6-7-8) independientemente del navegador de destino, usando la integración de Babel y los módulos ES también, por lo que podemos usarimport/export
declaraciones.
Podemos usar módulos CSS para definir el alcance de nuestro CSS.
Hablando de CSS de alcance, los componentes de un solo archivo hacen que sea absolutamente fácil escribir CSS que nofugaa otros componentes, usando<style scoped>
etiquetas.
Si omitesscoped
, el CSS que defina será global. Pero agregando eso, Vue agrega automáticamente una clase específica al componente, única para su aplicación, por lo que se garantiza que el CSS no se filtrará a otros componentes.
Tal vez su JavaScript sea enorme debido a alguna lógica de la que debe ocuparse. ¿Qué sucede si desea utilizar un archivo separado para su JavaScript?
Puedes usar elsrc
atributo para exteriorizarlo:
<template>
<p>{{ hello }}</p>
</template>
<script src="./hello.js"></script>
Esto también funciona para tu CSS:
<template>
<p>{{ hello }}</p>
</template>
<script src="./hello.js"></script>
<style src="./hello.css"></style>
Fíjate cómo usé
export default {
data() {
return {
hello: 'Hello World!'
}
}
}
en el JavaScript del componente para configurar los datos.
Otras formas comunes que verá son
export default {
data: function() {
return {
name: 'Flavio'
}
}
}
(lo anterior es equivalente a lo que hicimos antes)
o:
export default {
data: () => {
return {
name: 'Flavio'
}
}
}
esto es diferente porque usa una función de flecha. Las funciones de flecha están bien hasta que necesitamos acceder a un método de componente, ya que necesitamos hacer uso dethis
y dicha propiedad no está vinculada al componente que utiliza funciones de flecha. Entonces es obligatorio usarregularfunciones en lugar de funciones de flecha.
También puede ver
module.exports = {
data: () => {
return {
name: 'Flavio'
}
}
}
esto usa la sintaxis CommonJS, y también funciona, aunque se recomienda usar la sintaxis de los módulos ES, ya que es un estándar de JavaScript.
Descarga mi gratisManual de Vue
Más tutoriales de vue:
- Una descripción general de Vue.js
- La CLI de Vue.js: aprenda a usarla
- DevTools de Vue.js
- Configuración de VS Code para el desarrollo de Vue
- Crea tu primera aplicación con Vue.js
- Componentes de un solo archivo de Vue.js
- Plantillas e interpolaciones de vue.js
- Directivas de Vue.js
- Métodos de Vue.js
- Propiedades calculadas de Vue.js
- Diseñar componentes de Vue.js usando CSS
- Vigilantes de Vue.js
- Métodos Vue vs observadores vs propiedades calculadas
- Filtros de Vue.js
- Componentes de Vue.js
- Tragamonedas Vue.js
- Accesorios de componentes de Vue.js
- Eventos de Vue.js
- Comunicación de componentes de Vue.js
- Vuex, el administrador de estado de Vue.js
- Vue, usa un componente dentro de otro componente
- Vue, cómo usar un accesorio como nombre de clase.
- Cómo usar SCSS con componentes de archivo único Vue.js
- Usando Tailwind con Vue.js
- El enrutador Vue
- Mostrar dinámicamente un componente de Vue
- La hoja de trucos de Vue.js
- Almacene datos de Vue en localStorage usando Vuex
- Cómo aplicar dinámicamente una clase usando Vue
- Vue, cómo usar v-model
- Vue, por qué los datos deben ser una función
- Roadmap to become a Vue.js developer in 2020