tryOnMounted
Jalankan sesuatu setelah komponennya terpasang, atau sekarang juga kalau tidak ada komponennya.
Jalankan sesuatu setelah komponennya terpasang — atau sekarang juga, kalau memang tidak ada komponennya.
onMounted di luar setup() tidak melakukan apa-apa dan mencetak peringatan. Itu jadi soal karena composable dipanggil dari dua tempat: dari komponen, dan dari effectScope() lepas — termasuk di dalam uji, di mana peringatan itu membanjiri keluaran tanpa menandakan kesalahan apa pun.
Yang dijaga tetap sama di kedua jalur: pekerjaannya tidak pernah berjalan di server. Di dalam komponen itu dijamin onMounted sendiri; di luar komponen, isBrowser yang menjaganya.
Installation
pnpm dlx shadcn-vue@latest add @kliping/try-on-mounted Perlu @kliping terdaftar di components.json project Anda. Lihat cara menyiapkannya.
Ikut terpasang sendiri: is-browser.
Salin dulu is-browser — masing-masing memuat sumbernya di halamannya sendiri — lalu tempel berkas ini.
import { getCurrentInstance, onMounted } from 'vue'
import { isBrowser } from '@/lib/is-browser'
export function tryOnMounted(fn: () => void) {
if (getCurrentInstance()) {
onMounted(fn)
return
}
if (isBrowser) fn()
}API
export function tryOnMounted(fn: () => void)