Sistem Override
Sistem Override
Implementasi saat ini memakai dua mekanisme utama: extend lewat route/layer plugin, dan replace core lewat field replaces. Tidak ada field overrideMode yang dibaca oleh source saat ini.
Extend: Menambah Fitur Baru
Untuk menambah fitur baru, buat plugin aktif dengan routes sendiri dan biarkan replaces kosong atau tidak ditulis.
export default {
enabled: true,
routes: [
{
key: 'gamification',
path: '/dashboard/gamification',
icon: 'i-heroicons-trophy',
label: 'Gamification'
}
]
}
Hasilnya:
- layer plugin dimasukkan ke Nuxt;
- halaman plugin tersedia sesuai struktur
pages/; - menu dashboard ditambahkan dari
routes; - core bawaan tetap aktif.
Replace: Mengganti Core
Untuk mengganti fitur core, isi replaces dengan id core yang ingin dinonaktifkan.
export default {
enabled: true,
replaces: ['program'],
routes: [
{
key: 'custom-program',
path: '/dashboard/custom-program',
icon: 'i-heroicons-rectangle-stack',
label: 'Custom Program'
}
]
}
Saat auto-discovery berjalan, shared/utils/layers.ts akan:
- membaca plugin aktif;
- mengumpulkan semua core id di
replaces; - melewati core dengan id tersebut ketika menyusun
extends.
Dengan contoh di atas, cores/program tidak akan dimuat sebagai layer.
Partial Override Komponen
Nuxt Layers dapat melakukan resolusi komponen berdasarkan prioritas layer, tetapi project saat ini tidak memiliki field config khusus untuk "partial override". Jika ingin mengganti komponen tertentu, lakukan dengan hati-hati:
- gunakan nama komponen yang sama dengan komponen target;
- pastikan plugin aktif dan masuk komposisi layer;
- verifikasi hasilnya di browser karena prioritas resolusi mengikuti aturan Nuxt Layers.
Untuk replacement yang eksplisit dan stabil, gunakan replaces.
Override Sidebar
Sidebar mengikuti config, bukan hardcoded:
- item core berasal dari
core.config.ts; - item plugin berasal dari
plugin.config.ts; - item dinamis berasal dari
sidebar.ts; - core yang ada di
replacestidak ditampilkan.
Jika item dari sidebar.ts memiliki key yang sama dengan item statis, keduanya akan di-merge. Ini berguna untuk menambahkan children dinamis pada menu plugin.
Siap mencoba? Ikuti panduan Membuat Plugin Pertama Anda.
Plugin System
Plugin adalah Nuxt Layer tambahan yang ditempatkan di folder plugins/. Plugin dipakai untuk menambah fitur baru, mengganti core tertentu, atau memperkaya navigasi tanpa mengubah source di cores/.
Panduan Membuat Plugin
Panduan ini membuat plugin sederhana bernama welcome-banner yang menambahkan halaman dashboard dan item sidebar baru.
