Skip to content

Perbedaan composable dan utils pada Project Vue.js

Dalam proyek Vue.js modern (dengan Composition API), istilah composable dan utils sering digunakan untuk membagi logika kode. Meskipun sama-sama berupa fungsi, keduanya memiliki tujuan dan konteks penggunaan yang berbeda.


  • Tujuan: Mengelola state reaktif, lifecycle, atau logic yang berhubungan dengan Vue.
  • Digunakan dalam: setup() function (Composition API).
  • Ciri khas:
    • Menggunakan fitur Vue seperti ref, reactive, computed, watch, onMounted, dll.
    • Namanya biasanya diawali dengan use.
  • Contoh penggunaan:
composables/useCounter.ts
import { ref } from "vue";
export function useCounter() {
const count = ref(0);
const increment = () => count.value++;
return { count, increment };
}

  • Tujuan: Menyediakan fungsi murni (stateless) yang tidak bergantung pada Vue.
  • Digunakan dalam: Seluruh bagian proyek (Vue atau non-Vue).
  • Ciri khas:
    • Tidak menggunakan API Vue.
    • Dapat digunakan juga di sisi server (misalnya pada API, Node.js).
  • Contoh penggunaan:
utils/formatCurrency.ts
export function formatCurrency(value: number): string {
return new Intl.NumberFormat("id-ID", {
style: "currency",
currency: "IDR",
}).format(value);
}

AspekComposablesUtils
Terkait Vue?Ya (ref, reactive, watch, dsb)Tidak
NamauseSomething()Bebas (formatSomething, slugify, dll)
ContohuseAuth, useCounter, useFetchformatDate, toRupiah, capitalize
DependencyVue APIs (Composition API)JS murni

Gunakan composables untuk logika yang bergantung pada Vue dan reaktivitas, dan gunakan utils untuk fungsi-fungsi murni yang tidak terkait dengan Vue.