Règles de priorité C : Recommandées
Lorsqu'il existe plusieurs options correctes, un choix arbitraire peut être fait pour assurer une certaine cohérence. Dans ces règles, nous décrivons chaque option acceptable et suggérons un choix par défaut. Cela signifie que vous être libres de faire un choix différent dans votre code, tant que vous restez cohérent et avez une bonne raison. Vous avez certainement une bonne raison ! En adaptant les standards de la communauté, vous :
- Entraînerez votre cerveau à analyser plus facilement la plupart du code que vous rencontrerez
- Serez capable de copier et coller la plupart du code de la communauté sans modification
- Réaliserez souvent que les nouvelles recrues sont habituées à votre style de code favori, du moins en ce qui concerne Vue
Ordre des options du composant/de l'instance
Les options du composant/de l'instance devraient être ordonnées de manière constante.
Voici l'ordre par défaut que nous recommandons pour les options d'un composant. Les options sont divisées en catégories, afin que vous sachiez où ajouter de nouvelles propriétés depuis les plugins.
Conscience globale (requiert des informations au-delà du composant)
name
Options du compilateur de templates (change la manière dont les templates sont compilés)
compilerOptions
Dépendances du template (ressources utilisées dans le template)
components
directives
Composition (fusionne les propriétés dans les options)
extends
mixins
provide
/inject
Interface (l'interface du composant)
inheritAttrs
props
emits
Composition API (le point d'entrée pour l'utilisation de la Composition API)
setup
État local (propriétés réactives locales)
data
computed
Événements (fonctions de rappel déclenchées par des événements réactifs)
watch
- Événements du cycles de vie (dans l'ordre où ils sont appelés)
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
activated
deactivated
beforeUnmount
unmounted
errorCaptured
renderTracked
renderTriggered
Propriétés non réactives (propriétés de l'instance indépendantes du système de réactivité)
methods
Rendu (la description déclaratif du résultat du composant)
template
/render
Ordre des attributs des éléments
Les attributs des éléments (et des composants) devraient être ordonnés de manière constante.
Voici l'ordre par défaut que nous recommandons pour les options d'un composant. Les options sont divisées en catégories, afin que vous sachiez où ajouter des attributs personnalisés et des directives.
Définition (fourni les options du composant)
is
Rendu de liste (crée plusieurs variations d'un même élément)
v-for
Conditionnelles (indiquent si l'élément est rendu/affiché)
v-if
v-else-if
v-else
v-show
v-cloak
Modificateurs du rendu (changent la façon dont l'élément est rendu)
v-pre
v-once
Conscience globale (requiert des informations au-delà du composant)
id
Attributs uniques (attributs nécessitant des valeurs uniques)
ref
key
Liaison bidirectionnelle (combinaison de la liaison et des événements)
v-model
Autres attributs (tous les attributs liés et non liés non spécifiés)
Événements (écouteurs d'événements du composant)
v-on
Contenu (remplace le contenu de l'élément)
v-html
v-text
Lignes vides dans les options du composant/de l'instance
Vous pouvez être tenté d'ajouter une ligne vide entre les propriétés multi-lignes, notamment si les options ne peuvent plus tenir sur votre écran sans défilement.
Lorsque les composants commencent à prendre beaucoup d'espace ou deviennent difficiles à lire, l'ajout d'espaces entre les propriétés multi-lignes peut les rendre plus faciles à parcourir. Dans certains éditeurs, comme Vim, des options de formatage comme celle-ci peuvent également faciliter la navigation au clavier.
Bad
js
defineProps({
value: {
type: String,
required: true
},
focused: {
type: Boolean,
default: false
},
label: String,
icon: String
})
const formattedValue = computed(() => {
// ...
})
const inputClasses = computed(() => {
// ...
})
Good
js
defineProps({
value: {
type: String,
required: true
},
focused: {
type: Boolean,
default: false
},
label: String,
icon: String
})
const formattedValue = computed(() => {
// ...
})
const inputClasses = computed(() => {
// ...
})
Ordre des éléments de premier niveau des composants monofichiers
Les composants monofichiers devraient toujours ordonner les balises <script>
, <template>
, et <style>
de manière constante, avec <style>
en dernier, car au moins l'un des deux autres est toujours nécessaire.
À éviter
template
<style>/* ... */</style>
<script>/* ... */</script>
<template>...</template>
template
<!-- ComponentA.vue -->
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>
<!-- ComponentB.vue -->
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>
OK
template
<!-- ComponentA.vue -->
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>
<!-- ComponentB.vue -->
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>
template
<!-- ComponentA.vue -->
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>
<!-- ComponentB.vue -->
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>