뚠뚠멍의 생각들

สร้างไดเร็กทีฟแบบกำหนดเองใน Nuxt.js

สร้าง: 2024-09-28

สร้าง: 2024-09-28 19:07

การสร้างฟังก์ชันที่ใช้ร่วมกันกับ DOM ในหลายๆ เพจหรือหลายๆ คอมโพเนนต์


ทำได้ง่ายๆ ด้วยการสร้างเป็น custom directive


เราจะสร้างตัวอย่าง scroll directive

- มีประโยชน์ในการโหลดข้อมูลขณะเลื่อนดู หรือแสดง toast ขณะเลื่อนดูในหน้าหลักหรือหน้ารายละเอียด


1. ขั้นแรก สร้างไฟล์และลงทะเบียนใน nuxt plugin

nuxt config plugins จะดำเนินการไฟล์ที่กำหนดไว้เมื่อเริ่มต้นแอปพลิเคชัน Nuxt เพื่อเปิดใช้งานการทำงานบางอย่าง = สามารถใช้ฟังก์ชันเฉพาะได้ทั่วโลก


2. สร้าง scroll directive

สร้างให้สามารถส่ง callback function จากคอมโพเนนต์ได้


3. ตอนนี้ใช้ v-scroll ในเพจได้แล้ว



อื่นๆ

มี hook บางอย่างที่สามารถใช้ได้เมื่อสร้าง custom directive

1. bind(el, binding, vnode)
คำอธิบาย: เรียกใช้เพียงครั้งเดียวเมื่อ directive ถูกผูกกับ element เป็นครั้งแรก

สามารถตั้งค่าเริ่มต้นให้กับ element ที่ถูกผูกไว้ได้ที่นี่


พารามิเตอร์

el: องค์ประกอบ DOM ที่ directive ถูกผูกไว้
binding: ออบเจ็กต์ที่มีค่า นิพจน์ และอาร์กิวเมนต์ของ directive
vnode: โหนดเสมือนที่สร้างโดย Vue compiler


2. inserted(el, binding, vnode)

คำอธิบาย: เรียกใช้เมื่อ element ที่ถูกผูกไว้ถูกแทรกเข้าไปใน DOM กล่าวคือ ใช้เมื่อ directive ถูกเพิ่มเข้าไปใน DOM จริงๆ

* ในโค้ดการผูกเหตุการณ์การเลื่อนดู คุณจะเห็นว่าการทำงานที่เกี่ยวข้องกับ DOM จะดำเนินการในช่วงเวลาของ inserted hook


3. update(el, binding, vnode, oldVnode)

คำอธิบาย: เรียกใช้ทุกครั้งที่แอตทริบิวต์หรือค่าของ element ที่ถูกผูกไว้เปลี่ยนแปลง

แต่ยังอยู่ในสถานะก่อนที่คอมโพเนนต์ลูกจะอัปเดต

ใช้เมื่อจำเป็นต้องดำเนินการ DOM เมื่อค่าการผูกเปลี่ยนแปลง

พารามิเตอร์

oldVnode: โหนดเสมือนที่เรนเดอร์ก่อนหน้า


4. componentUpdated(el, binding, vnode, oldVnode)

คำอธิบาย: เรียกใช้หลังจากที่แอตทริบิวต์หรือค่าของ element ที่ถูกผูกไว้ได้รับการอัปเดตและคอมโพเนนต์ลูกทั้งหมดได้รับการอัปเดตแล้ว

กล่าวคือ ดำเนินการในสถานะ DOM สุดท้าย รอจนกว่าค่าของคอมโพเนนต์ลูกจะเปลี่ยนแปลงก่อนจึงดำเนินการ


5. unbind(el, binding, vnode)

คำอธิบาย: เรียกใช้เมื่อ directive ไม่ถูกนำไปใช้กับ element อีกต่อไปและ element ถูกทำลาย

ในช่วงเวลานี้จะดำเนินการลบ event listener หรือการทำงานจัดการต่างๆ

* ในตัวอย่าง custom scroll จะทำการลบ event listener ในช่วงเวลาของ unbind




ความคิดเห็น0

[7 วัน] สร้างเกมสนุกๆ กับ AIนี่คือวันที่ 7 ของการพัฒนาเว็บเกมที่ใช้ AI ช่วยเหลือโดยอิงจาก D&D5e เราประสบความสำเร็จในการปรับปรุงประสิทธิภาพด้วยการแยกเลเยอร์ของแคนวาสและการเปลี่ยนวิธีการ ESM รวมถึงการใช้งานระบบปฏิสัมพันธ์กับสิ่งปลูกสร้างและเอฟเฟกต์การต่อสู้ ตรวจสอบได้ที่ ggoban.com/d2
꼬반
꼬반
꼬반
꼬반

November 13, 2024

เริ่มต้นเขียนบทความแรกบนดูรูมิสแนะนำฟีเจอร์การเขียนบทความและตัวแก้ไขบนแพลตฟอร์มดูรูมิส พร้อมทั้งสำรวจฟีเจอร์ต่างๆ เช่น ฟีเจอร์จัดรูปแบบต่างๆ ลิงก์บ็อกซ์ เส้นแบ่ง และเสนอแนะการปรับปรุง
이것저것 잡다한 이야기
이것저것 잡다한 이야기
이것저것 잡다한 이야기
이것저것 잡다한 이야기

April 14, 2024

2024-11-18 สิ่งที่สนใจอย่างหลากหลายในชีวิต : ฉันใช้เวลาว่างทำอะไรบ้าง?บทความบล็อกที่เขียนเมื่อวันที่ 18 พฤศจิกายน 2024 บทความนี้กล่าวถึงงานอดิเรก การลงทุน การเรียนรู้ และกิจวัตรประจำวันต่างๆ ของผู้เขียน รวมถึงความกังวลเกี่ยวกับการเพิ่มประสิทธิภาพการทำงานผ่านระบบอัตโนมัติ
Charles Lee
Charles Lee
Charles Lee
Charles Lee

November 19, 2024

[ตอนที่ 2] สร้างเกมเว็บด้วย AI ภายใน 30 นาทีตอนที่ 2 การสร้างเกมเว็บด้วย AI ภายใน 30 นาที: แยกไฟล์ HTML, JS, CSS และเพิ่มแถบสถานะตัวละคร ปุ่มคะแนนสกิล และฟังก์ชั่นดรอปทองคำเสร็จสมบูรณ์ กำลังวางแผนที่จะเพิ่มระบบร้านค้าและสกิลในอนาคต
꼬반
꼬반
꼬반
꼬반

November 8, 2024

[1 วัน] สร้างเกมสนุกๆ กับ AIขอแนะนำบันทึกการพัฒนาเกมดันเจี้ยน 100 ชั้นที่สร้างด้วย Javascript, HTML, CSS โดยได้รับความช่วยเหลือจาก AI ปัจจุบันกำลังพัฒนาส่วนต่างๆ เช่น เมือง ดันเจี้ยน และระบบต่อสู้ โดยได้เสร็จสิ้นการสร้างระบบสร้างตัวละครและระบบคลังของแล้ว พรุ่งนี้จะเริ่มพัฒนาต่อสู้
꼬반
꼬반
꼬반
꼬반

November 8, 2024