Reglas de Prioridad C: Recomendadas
Nota
Esta Guía de Estilo de Vue.js está desactualizada y necesita ser revisada. Si tienes alguna pregunta o sugerencia, por favor abre una issue.
Cuando existen múltiples opciones igualmente buenas, se puede hacer una elección arbitraria para asegurar la consistencia. En estas reglas, describimos cada opción aceptable y sugerimos una elección predeterminada. Esto significa que puedes sentirte libre de hacer una elección diferente en tu propio código base, siempre y cuando seas consistente y tengas una buena razón. ¡Pero por favor, ten una buena razón! Al adaptarte al estándar de la comunidad, podrás:
- Entrenar tu cerebro para analizar más fácilmente la mayor parte del código de la comunidad que encuentres
- Poder copiar y pegar la mayoría de los ejemplos de código de la comunidad sin modificación
- A menudo descubrir que los nuevos empleados ya están acostumbrados a tu estilo de codificación preferido, al menos en lo que respecta a Vue
Orden de las opciones de componente/instancia
Las opciones de componente/instancia deben ordenarse de manera consistente.
Este es el orden predeterminado que recomendamos para las opciones de componente. Están divididas en categorías, para que sepas dónde añadir nuevas propiedades de los plugins.
Conocimiento Global (requiere conocimiento más allá del componente)
name
Opciones del Compilador de Templates (cambia la forma en que se compilan los templates)
compilerOptions
Dependencias de Templates (recursos utilizados en el template)
componentsdirectives
Composición (fusiona propiedades en las opciones)
extendsmixinsprovide/inject
Interfaz (la interfaz del componente)
inheritAttrspropsemits
Composition API (el punto de entrada para usar la Composition API)
setup
Estado Local (propiedades reactivas locales)
datacomputed
Eventos (callbacks activados por eventos reactivos)
watch- Eventos del Ciclo de Vida (en el orden en que son llamados)
beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedactivateddeactivatedbeforeUnmountunmountederrorCapturedrenderTrackedrenderTriggered
Propiedades No Reactivas (propiedades de instancia independientes del sistema de reactividad)
methods
Renderizado (la descripción declarativa de la salida del componente)
template/render
Orden de los atributos de elemento
Los atributos de los elementos (incluyendo componentes) deben ordenarse de manera consistente.
Este es el orden predeterminado que recomendamos para las opciones de componente. Están divididas en categorías, para que sepas dónde añadir atributos y directivas personalizados.
Definición (proporciona las opciones del componente)
is
Renderizado de Lista (crea múltiples variaciones del mismo elemento)
v-for
Condicionales (si el elemento se renderiza/muestra)
v-ifv-else-ifv-elsev-showv-cloak
Modificadores de Renderizado (cambia la forma en que se renderiza el elemento)
v-prev-once
Conocimiento Global (requiere conocimiento más allá del componente)
id
Atributos Únicos (atributos que requieren valores únicos)
refkey
Enlace Bidireccional (combina enlace y eventos)
v-model
Otros Atributos (todos los atributos enlazados y no enlazados no especificados)
Eventos (listeners de eventos del componente)
v-on
Contenido (sobrescribe el contenido del elemento)
v-htmlv-text
Líneas vacías en las opciones de componente/instancia
Es posible que quieras añadir una línea vacía entre propiedades de varias líneas, particularmente si las opciones ya no caben en tu pantalla sin hacer scroll.
Cuando los componentes empiezan a sentirse apretados o difíciles de leer, añadir espacios entre propiedades de varias líneas puede hacer que sean más fáciles de escanear de nuevo. En algunos editores, como Vim, las opciones de formato como esta también pueden hacerlos más fáciles de navegar con el teclado.
Mal
js
defineProps({
value: {
type: String,
required: true
},
focused: {
type: Boolean,
default: false
},
label: String,
icon: String
})
const formattedValue = computed(() => {
// ...
})
const inputClasses = computed(() => {
// ...
})Bien
js
defineProps({
value: {
type: String,
required: true
},
focused: {
type: Boolean,
default: false
},
label: String,
icon: String
})
const formattedValue = computed(() => {
// ...
})
const inputClasses = computed(() => {
// ...
})Orden de los elementos de nivel superior en componentes de archivo único
Los Componentes de Archivo Único siempre deben ordenar las etiquetas <script>, <template> y <style> de manera consistente, con <style> al final, porque al menos una de las otras dos es siempre necesaria.
Mal
template
<style>/* ... */</style>
<script>/* ... */</script>
<template>...</template>template
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>template
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>Bien
template
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>template
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>o
template
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>template
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>







