ฉันกำลังใช้ส่วนประกอบปลั๊กอิน Vue Timeago และฉันต้องการแสดงเวลา timeago ในเนื้อหา ของปลั๊กอินแผนที่ ตัวอย่างที่เรียบง่ายสุด ๆ เพื่อแสดงให้เห็นการใช้งานจะเป็นดังนี้:
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);
ตามคำตอบนี้ และเอกสารประกอบของ Vue ฉันควรจะสามารถคอมไพล์สิ่งนี้โดยใช้ Vue.compile()
แต่ฉันไม่เข้าใจแนวคิด
ประการแรก ไม่มีคำอธิบายว่า "งานสร้างเต็มรูปแบบ" คืออะไร ฉันจะรู้ได้อย่างไรว่าสิ่งที่ฉันมีคือ "เวอร์ชันเต็ม" หรือไม่ การค้นหา "vuejs full build" จะไม่ส่งคืนสิ่งที่เรียกว่าวลีนั้นตามตัวอักษร แม้ว่าจะใช้ในเอกสารประกอบก็ตาม สิ่งที่ฉันรู้ก็คือเมื่อฉันพยายามโทร Vue.compile()
โดยนำเข้า import Vue from 'vue'
มันจะบ่นว่า:
TypeError: vue__WEBPACK_IMPORTED_MODULE
Vue.compile()
_.default.compile ไม่ใช่ฟังก์ชัน
เลยไม่รู้ว่าจะไปจากที่นั่นได้ที่ไหน
แล้วอย่างที่สองคือ (สมมติว่าสิ่งแรกถูกจัดเรียง) ฉันจะต้องทำให้ HTML ของฉันเก็บ div ว่างไว้โดยมี id
เฉพาะเจาะจง รอให้แสดงผล แล้วจึงเรียก Vue.compile()
ที่นั้นหรือไม่ เนื่องจากโค้ดตัวอย่างทำงานอยู่ที่นั่น ด้วย .mount()
บนรหัสองค์ประกอบ? เพราะนั่นดูเหมือน "ผิด" นิดหน่อย ดูเหมือนมีขั้นตอนเพิ่มเติม หรือนั่นเป็นวิธีเดียวที่จะทำให้สถานการณ์นี้ได้ผล?
หากมีทางเลือกอื่นที่ง่ายกว่าในการรอการทำงานนี้ เช่น รับคอมโพเนนต์ Timeago
เพียงส่งคืนสตริงที่แสดงผลเท่านั้น เช่น 2 hours ago
ที่ฉันสามารถรวมเข้ากับสตริงลิเทอรัลของฉันได้ นั่นก็ใช้ได้ผลสำหรับฉันเช่นกัน ทั้งสองวิธีก็ดี