Skip to content
Grok

Component Naming

Single File Components (SFC)

ไฟล์ Vue components ควรใช้ PascalCase และลงท้ายด้วย .vue

vue
<!-- Good -->
<UserProfile.vue>
<AccountSettings.vue>

<!-- Avoid -->
<user-profile.vue>
<accountSettings.vue>

Component Name in Script

เมื่อกำหนดชื่อ component ใน <script setup> ใช้ PascalCase

vue
<script setup lang="ts">
// Good
const name = "UserProfile";

// Avoid
const name = "user-profile";
</script>

Props Naming

Props ควรใช้ camelCase เมื่อประกาศ แต่ kebab-case ใน template

vue
<script setup lang="ts">
// Good
const props = defineProps({
  userData: { type: Object },
});
</script>

<template>
  <!-- ใช้ kebab-case ใน template -->
  <UserProfile :user-data="user" />
</template>

Event Naming

Custom events ควรใช้ kebab-case

vue
<script setup lang="ts">
// Good
const emit = defineEmits(["update:model-value"]);

// Avoid
const emit = defineEmits(["update:modelValue"]);
</script>
Convention TypeScript (<script>)Template (<template>)ตัวอย่าง
Component FilesPascalCase (.vue)-UserProfile.vue
Component NamesPascalCasePascalCase<UserProfile>
PropscamelCasekebab-case:user-data="user"
EventscamelCasekebab-case@update:model-value
VariablescamelCasecamelCaseconst userData = ref()
SlotscamelCasekebab-case<template #header-title>
Directives-kebab-casev-model:search-text