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