توسعه نرم‌افزار

بهترین شیوه‌های Vue 3 برای پروژه‌های واقعی

نویسنده: Hadi ZareZadeh۱۳ اسفند ۱۴۰۴۲۷۴۱ بازدید
بهترین شیوه‌های Vue 3 برای پروژه‌های واقعی

Vue 3 یک ارتقای واقعی است، نه فقط یک به‌روزرسانی نحوی. Composition API، <script setup> و Pinia نحوه ساختاردهی یک فرانت‌اند را تغییر می‌دهند — به سمت بهتر، اگر بگذارید. این‌ها الگوهایی هستند که پروژه‌های Vue 3 من را بعد از پایان ماه عسل قابل نگهداری نگه داشتند.

script setup را در آغوش بگیرید

<script setup> کدهای تکراری را حذف و منطق کامپوننت را خوانا می‌کند. propها، emitها و importها همه بالا هستند؛ بدون تشریفات export default { ... }.

<script setup lang="ts">
import { computed } from 'vue';

const props = defineProps<{
  course: { title: string; price: number };
}>();

const formattedPrice = computed(() =>
  new Intl.NumberFormat('fa-IR').format(props.course.price)
);
</script>

composableها برای منطق مشترک

اگر منطق واکنش‌گرا را بین کامپوننت‌ها کپی‌پیست می‌کنید، یک composable استخراج کنید. نامش را useSomething بگذارید و متمرکز نگهش دارید:

// composables/usePagination.ts
export function usePagination(totalItems: Ref<number>, perPage = 20) {
  const page = ref(1);
  const totalPages = computed(() => Math.ceil(totalItems.value / perPage));
  return { page, totalPages };
}
composableها پاسخ Vue 3 به mixinها هستند، بدون تداخل نام‌گذاری و وابستگی‌های مبهم mixinها.

Pinia به‌جای Vuex

Pinia ساده‌تر، دوست‌دار TypeScript و رسماً توصیه‌شده است. یک store برای هر دامنه (useCartStore، useAuthStore)، اکشن‌ها را نازک نگه دارید و state رابط کاربری را در storeهای سراسری نگذارید، مگر اینکه چند کامپوننت بی‌ربط به آن نیاز داشته باشند.

مرزهای کامپوننت

  • کامپوننت‌های هوشمند در برابر ساده. کامپوننت‌های ظرف داده می‌گیرند و prop پایین می‌فرستند؛ کامپوننت‌های نمایشی فقط رندر می‌کنند. این تست و بازاستفاده را بدیهی می‌کند.
  • تمپلیت‌ها را خوانا نگه دارید. اگر تمپلیت شما شرطی‌های سه‌گانه تودرتو دارد، منطق را به یک computed منتقل کنید.
  • propها را نوع‌دهی کنید. TypeScript دسته بزرگی از باگ‌ها را به‌جای مرورگر، در زمان کامپایل می‌گیرد.

کارایی بدون بهینه‌سازی زودهنگام

وقتی مسئله‌ای را اندازه گرفتید از v-memo و shallowRef استفاده کنید. پیش‌فرض را روی روشنی بگذارید. مسیرها را با importهای پویا برای تقسیم کد به‌صورت تنبل بارگذاری کنید:

const CourseShow = () => import('@/pages/courses/Show.vue');

اشتباهات رایج

  • همه چیز در یک کامپوننت غول‌پیکر. زود تقسیم کنید؛ ادغام از باز کردن گره آسان‌تر است.
  • تغییر دادن propها. propها پایین می‌روند؛ رویدادها بالا می‌آیند. همیشه.
  • استفاده بیش از حد از state سراسری. state محلی اشکالی ندارد. همه چیز به Pinia تعلق ندارد.

بهترین شیوه‌ها

  • قراردادهای پوشه‌بندی را زود تثبیت کنید: pages/، components/، composables/، stores/.
  • برای composableها و storeهای منطق‌سنگین تست کامپوننت بنویسید، نه برای هر دکمه.
  • از ESLint و راهنمای سبک رسمی Vue به‌عنوان خط پایه تیم استفاده کنید.

جمع‌بندی

Vue 3 به ساختار پاداش می‌دهد: script setup برای روشنی، composableها برای بازاستفاده، Pinia برای state مشترک و مرزهای هوشمند کامپوننت برای نگهداری‌پذیری. این الگوها را زود اتخاذ کنید و فرانت‌اندتان با انباشته شدن ویژگی‌ها زیر وزن خودش فرونمی‌ریزد. این اسپرینت یک کامپوننت اضافه‌وزن را به یک جفت ظرف به‌علاوه نمایشی بازآرایی کنید — برد را فوراً حس می‌کنید.