Pravidla priority C: Doporučené
Poznámka
Tento průvodce Vue.js stylováním je zastaralý a vyžaduje revizi. Pokud máte jakékoliv otázky a návrhy, prosím založte nové hlášení.
Tam, kde existuje více stejně dobrých možností, lze pro zajištění konzistence vybrat libovolnou z nich. V těchto pravidlech popisujeme každou přijatelnou možnost a navrhujeme výchozí variantu. To znamená, že se můžete ve své vlastní kódové bázi volně rozhodnout, pokud budete konzistentní a máte pro to dobrý důvod. Ale mějte prosím dobrý důvod! Přizpůsobením se standardu komunity budete:
- trénovat svůj mozek, aby snadněji analyzoval většinu kódu v rámci Vue komunity, se kterým se setkáte
- umět zkopírovat a vložit většinu příkladů kódu v rámci Vue komunity bez dalších úprav
- častěji nacházet nové zaměstnance, kteří jsou již zvyklí na váš styl kódování, alespoň pokud jde o Vue
Pořadí možností nastavení komponent/instancí
Možnosti nastavení komponent/instancí (options) by měly být řazeny konzistentně.
Toto je výchozí pořadí, které doporučujeme pro možnosti nastavení komponent. Jsou rozděleny do kategorií, takže budete vědět, kam přidat nová nastavení z pluginů.
Globální povědomí (vyžaduje znalost mimo komponentu)
name
Nastavení kompilátoru šablony (mění způsob kompilace šablon)
compilerOptions
Závislosti šablon (prvky (assets) použité v šabloně)
componentsdirectives
Kompozice (slučují do možností nastavení další vlastnosti)
extendsmixinsprovide/inject
Interface (rozhraní komponenty)
inheritAttrspropsemits
Composition API (vstupní bod pro použití Composition API)
setup
Lokální stav (state) (lokální reaktivní proměnné)
datacomputed
Události (events) (callbacky vyvolávané reaktivními prvky)
watch- Události životního cyklu (v pořadí, v jakém jsou volány)
beforeCreatecreatedbeforeMountmountedbeforeUpdateupdatedactivateddeactivatedbeforeUnmountunmountederrorCapturedrenderTrackedrenderTriggered
Nereaktivní vlastnosti (vlastnosti instance nezávislé na systému reaktivity)
methods
Vykreslování (rendering) (deklarativní popis výstupu komponenty)
template/render
Pořadí atributů elementů
Atributy elementů (včetně komponent) by měly být řazeny konzistentně.
Toto je výchozí pořadí, které doporučujeme pro atributy komponent. Jsou rozděleny do kategorií, takže budete vědět, kam přidat vlastní atributy a příkazy.
Definice (poskytuje možnosti komponent)
is
Vykreslování seznamu (vytváří více variant stejného prvku)
v-for
Podmínky (zda má být element vykreslen/ukázán)
v-ifv-else-ifv-elsev-showv-cloak
Modifikátory vykreslení (mění způsob vykreslování elementu)
v-prev-once
Globální povědomí (vyžaduje znalost mimo komponentu)
id
Unikátní atributy (attributy, které vyžadují unikátní hodnoty)
refkey
Two-Way Binding (kombinace přiřazení hodnoty (binding) a událostí (events))
v-model
Jiné atributy (všechny nespecifikované vázané i nevázané atributy)
Události (event-listenery komponenty)
v-on
Obsah (přepisují obsah elementu)
v-htmlv-text
Prázdné řádky v možnostech nastavení komponenty/instance
Možná budete chtít přidat jeden prázdný řádek mezi víceřádkové vlastnosti, zejména pokud se možnosti již nevejdou na vaši obrazovku bez posouvání.
Když komponenty začnou vypadat stísněně nebo obtížně čitelné, přidání mezer mezi víceřádkové vlastnosti může usnadnit jejich opětovné procházení. V některých editorech jako Vim, mohou tyto varianty formátování také usnadnit navigaci pomocí klávesnice.
Špatně
js
defineProps({
value: {
type: String,
required: true
},
focused: {
type: Boolean,
default: false
},
label: String,
icon: String
})
const formattedValue = computed(() => {
// ...
})
const inputClasses = computed(() => {
// ...
})Dobře
js
defineProps({
value: {
type: String,
required: true
},
focused: {
type: Boolean,
default: false
},
label: String,
icon: String
})
const formattedValue = computed(() => {
// ...
})
const inputClasses = computed(() => {
// ...
})Pořadí hlavních sekcí Single-file komponenty (SFC)
Single-File komponenty (SFC) by měly vždy řadit tagy sekcí <script>, <template> a <style> konzistentně, přičemž <style> by měl být poslední, protože je vždy nezbytný jeden ze dvou zbylých.
Špatně
template
<style>/* ... */</style>
<script>/* ... */</script>
<template>...</template>template
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>template
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>Dobře
template
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>template
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>template
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>template
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>