Saya menggunakan komponen plugin Vue Timeago, dan saya ingin menampilkan waktu timeago di konten dari plugin peta. Contoh yang sangat disederhanakan untuk menggambarkan penggunaannya adalah seperti:
let popup = L.responsivePopup().setContent(`
<h1>Hello world</h1>
<p>A thing happened <Timeago datetime="${datetime}"></Timeago></p>
`);
L.marker([lat, lon]).bindPopup(popup).addTo(this.map);
Menurut jawaban ini, dan Dokumentasi Vue, saya seharusnya bisa mengkompilasi ini menggunakan Vue.compile()
, tetapi saya tidak memahami konsepnya.
Pertama, tidak ada penjelasan tentang apa itu "full build". Bagaimana cara mengetahui apakah yang saya miliki adalah "build penuh"? Menelusuri "vuejs full build" tidak menghasilkan apa pun yang secara harfiah disebut sebagai frasa tersebut, meskipun mereka menggunakannya dalam dokumentasi di sana. Yang saya tahu adalah ketika saya mencoba menelepon Vue.compile()
dengan mengimpor import Vue from 'vue'
, ia mengeluh dengan mengatakan:
TypeError: vue__WEBPACK_IMPORTED_MODULE
Vue.compile()
_.default.compile bukan fungsi
Jadi saya tidak tahu ke mana harus pergi setelah itu.
Dan hal kedua adalah (dengan asumsi hal pertama diurutkan), apakah saya harus membuat HTML saya menampung div kosong dengan id
tertentu, menunggu hingga dirender, dan kemudian memanggil Vue.compile()
di atasnya, karena kode contoh di sana berjalan dengan .mount()
pada id elemen? Karena itu sepertinya sedikit "salah", sepertinya ada langkah ekstra. Atau apakah itu satu-satunya cara agar skenario ini berhasil?
Jika ada alternatif menunggu yang lebih sederhana untuk membuat ini berfungsi, seperti membuat komponen Timeago
hanya mengembalikan string yang dirender saja, seperti 2 hours ago
yang dapat saya masukkan ke dalam string literal saya, itu juga akan berhasil untuk saya. Apa pun itu baik-baik saja.