Önerilen Öncelik C Kuralları
Önerilen Öncelik C Kuralları
eşit derecede iyi birden fazla seçenek mevcut olduğu durumlarda, tutarlılığı sağlamak için keyfi bir seçim yapılabilir. Bu kurallarda, her bir kabul edilebilir seçeneği tanımlar ve varsayılan bir seçim öneririz. Bu, kendi kod tabanınızda farklı bir seçim yapma özgürlüğünüz olduğu anlamına gelir, yeter ki tutarlı olun ve mantıklı bir sebebiniz olsun. Ancak, gerçekten iyi bir sebebiniz olmalı! Topluluk standartlarına uyum sağladığınızda:
- Karşılaştığınız topluluk kodunu daha kolay çözümlemeyi öğrenirsiniz.
- Topluluğun kod örneklerini değiştirmeden kopyalayıp yapıştırabilirsiniz.
- Yeni işe alımların, en azından Vue ile ilgili olarak, tercih ettiğiniz kodlama stiline alışık olduğunu sıkça görebilirsiniz.
Kodunuzun tutarlılığını artırmak için bu kurallara uyun.
Bileşen/Örnek Seçenekleri Sırası
Bileşen/örnek seçenekleri tutarlı bir şekilde sıralanmalıdır.
Bileşen seçenekleri için önerdiğimiz varsayılan sıradır. Kategorilere ayrılmışlardır, böylece eklentilerden yeni özellikler ekleyeceğiniz yeri bilirsiniz.
Küresel Farkındalık (bileşenden daha fazlasına dair bilgi gerektirir)
name
Şablon Derleyici Seçenekleri (şablonların derlenme şeklini değiştirir)
compilerOptions
Şablon Bağımlılıkları (şablonda kullanılan varlıklar)
components
directives
Bileşim (özellikleri seçeneklere birleştirir)
extends
mixins
provide
/inject
Arayüz (bileşene yönelik arayüz)
inheritAttrs
props
emits
Bileşim API'si (Bileşim API'sini kullanma girişi)
setup
Yerel Durum (yerel reaktif özellikler)
data
computed
Olaylar (reaktif olaylar tarafından tetiklenen geri çağırmalar)
watch
- Yaşam Döngüsü Olayları (çağrıldıkları sıraya göre)
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
activated
deactivated
beforeUnmount
unmounted
errorCaptured
renderTracked
renderTriggered
Reaktif Olmayan Özellikler (reaktivite sisteminden bağımsız örnek özellikler)
methods
Rendering (bileşen çıktısının deklaratif tanımı)
template
/render
Bu sıralama, komponentlerinizi daha anlaşılır ve yönetilebilir hale getirir.
Eleman Nitelikleri Sırası
Elemanların (bileşenler de dahil) nitelikleri tutarlı bir şekilde sıralanmalıdır.
Bileşen seçenekleri için önerdiğimiz varsayılan sıradır. Kategorilere ayrılmışlardır, böylece özel nitelikler ve direktifler ekleyeceğiniz yeri bilirsiniz.
Tanım (bileşen seçeneklerini sağlar)
is
Liste Oluşturma (aynı elemanın birden fazla varyasyonunu oluşturur)
v-for
Koşullar (elemanın render edilip edilmeyeceği)
v-if
v-else-if
v-else
v-show
v-cloak
Render Modifikatörleri (elemanın nasıl render edildiğini değiştirir)
v-pre
v-once
Küresel Farkındalık (bileşenden daha fazlasına dair bilgi gerektirir)
id
Eşsiz Nitelikler (eşsiz değerler gerektiren nitelikler)
ref
key
İki Yönlü Bağlama (bağlamayı ve olayları birleştirme)
v-model
Diğer Nitelikler (tanımlanmamış bağlı ve bağlı olmayan tüm nitelikler)
Olaylar (bileşen event dinleyicileri)
v-on
İçerik (elemanın içeriğini geçersiz kılar)
v-html
v-text
Niteliklerin tutarlı bir şekilde sıralanması, kodunuzu daha okunabilir kılar.
Bileşen/Örnek Seçeneklerindeki Boş Satırlar
Çok satırlı özellikler arasında bir boş satır eklemek isteyebilirsiniz, özellikle de seçenekleriniz ekranınıza sığmayacak kadar daraldığında.
Bileşenler sıkışık ya da okunması zor hale geldiğinde, çok satırlı özellikler arasında boşluk eklemek, tekrar göz atmayı kolaylaştırabilir. Bazı editörlerde, bu gibi biçimlendirme seçenekleri klavye ile gezinmeyi de kolaylaştırabilir.
Kötü
props: {
value: {
type: String,
required: true
},
focused: {
type: Boolean,
default: false
},
label: String,
icon: String
},
computed: {
formattedValue() {
// ...
},
inputClasses() {
// ...
}
}
İyi
// Boşluk da uygundur, yeter ki bileşen
// hala okunabilir ve gezinilebilir olsun.
props: {
value: {
type: String,
required: true
},
focused: {
type: Boolean,
default: false
},
label: String,
icon: String
},
computed: {
formattedValue() {
// ...
},
inputClasses() {
// ...
}
}
Kötü
defineProps({
value: {
type: String,
required: true
},
focused: {
type: Boolean,
default: false
},
label: String,
icon: String
})
const formattedValue = computed(() => {
// ...
})
const inputClasses = computed(() => {
// ...
})
İyi
defineProps({
value: {
type: String,
required: true
},
focused: {
type: Boolean,
default: false
},
label: String,
icon: String
})
const formattedValue = computed(() => {
// ...
})
const inputClasses = computed(() => {
// ...
})
Tek Dosya Bileşeni Üst Düzey Eleman Sırası
Tek Dosya Bileşenleri
, ,
ve etiketlerini tutarlı bir şekilde,
en sona gelecek şekilde sıralanmalıdır, çünkü diğer iki etiket her zaman birinden en az bir tanesi gereklidir.
Kötü
<style>/* ... */</style>
<script>/* ... */</script>
<template>...</template>
<!-- ComponentA.vue -->
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>
<!-- ComponentB.vue -->
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>
İyi
<!-- ComponentA.vue -->
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>
<!-- ComponentB.vue -->
<script>/* ... */</script>
<template>...</template>
<style>/* ... */</style>
<!-- ComponentA.vue -->
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>
<!-- ComponentB.vue -->
<template>...</template>
<script>/* ... */</script>
<style>/* ... */</style>