Plugins — run once on app init. Composables — reusable logic.
Plugins:
1// plugins/axios.ts2export default defineNuxtPlugin(() => {3 return {4 provide: {5 api: $fetch.create({6 baseURL: "https://api.example.com"7 })8 }9 }10})
Composables:
1// composables/useApi.ts2export const useApi = () => {3 return $fetch.create({4 baseURL: "https://api.example.com"5 })6}
Key differences: