CodeShot

Options API در مقابل Composition API

Options API کد کامپوننت را در بخش‌های از پیش تعیین‌شده (data، methods، computed) سازمان‌دهی می‌کند که برای مبتدیان خواناتر است، در حالی که Composition API با تابع setup() و توابعی مثل ref و reactive اجازه می‌دهد منطق مرتبط با هم را کنار هم بنویسید و آن را در قالب Composable بین کامپوننت‌ها به اشتراک بگذارید.

ویژگیOptions APIComposition API
سازمان‌دهی کدبر اساس نوع (data/methods)بر اساس قابلیت/منطق
استفاده مجدد منطقمحدودتر (Mixins)آسان (Composables)
یادگیری برای مبتدیساده‌ترکمی پیچیده‌تر

کِی از Options API استفاده کنیم؟

وقتی کامپوننت ساده است، تیم تازه‌کار است یا پروژه از Vue 2 مهاجرت‌نکرده و می‌خواهید سازگاری کامل با کد قدیمی حفظ شود.

کِی از Composition API استفاده کنیم؟

وقتی کامپوننت پیچیده است، منطق مشابه باید بین چند کامپوننت به اشتراک گذاشته شود یا از TypeScript برای Type Inference بهتر استفاده می‌کنید.

مثال Options API

export default {
  data() { return { count: 0 }; },
  methods: {
    increment() { this.count++; }
  }
};

مثال Composition API

import { ref } from "vue";
export default {
  setup() {
    const count = ref(0);
    const increment = () => count.value++;
    return { count, increment };
  }
};

اشتباه رایج

اشتباه رایج پخش‌کردن منطق مرتبط با یک قابلیت واحد در بخش‌های جدا (data، computed، methods) در Options API برای کامپوننت‌های بزرگ است؛ در چنین حالتی Composition API با گروه‌بندی منطق مرتبط در کنار هم خوانایی را به‌شدت بهتر می‌کند.

جمع‌بندی

برای پروژه‌های ساده و تیم‌های تازه‌کار Options API همچنان قابل قبول است، اما برای پروژه‌های پیچیده و قابل استفاده مجدد Composition API انتخاب بهتری است.