ส่วนประกอบกับ Widget


10

ใน Magento 2 อะไรคือความแตกต่างระหว่างส่วนประกอบกับวิดเจ็ต ตัวอย่างเช่นมีองค์ประกอบเป็นกิริยาช่วยและเครื่องมือเป็นกิริยาช่วยพวกเขาทั้งสองดูเหมือนจะทำสิ่งเดียวกัน

ตัวแทน

องค์ประกอบModal UIใช้หน้าต่างรองที่เปิดด้านบนของหน้าต่างหลัก มันใช้เครื่องมือคำกริยา

วิดเจ็ต

วีโอไอพี Modal เครื่องมือดำเนินหน้าต่างรองที่เปิดด้านบนของหน้าต่างหลัก

วิดเจ็ตสามารถเริ่มต้นได้ด้วย JS ไม่กี่บรรทัดโดยที่คอมโพเนนต์ต้องมีหลายบรรทัดของ XML และยังคงใช้วิดเจ็ต ดังนั้นทำไมทุกคนจะใช้วิธีการ XML?

คำตอบ:


6

วิดเจ็ตสามารถเริ่มต้นได้ด้วย JS ไม่กี่บรรทัดโดยที่คอมโพเนนต์ต้องการหลายบรรทัดของ XML และยังคงใช้วิดเจ็ต ดังนั้นทำไมทุกคนจะใช้วิธีการ XML?

ระบบคอมโพเนนต์ UI อนุญาตให้นักพัฒนาจัดทำแพ็กเกจโมดูล RequireJS ที่แตกต่างกันจำนวนมากเป็นตัวสร้างโมเดลมุมมอง KnockoutJS (ที่มีเทมเพลต Knockout.js "ระยะไกล" ระยะไกลที่เกี่ยวข้อง) จากนั้นใช้โมเดลมุมมองเหล่านั้นในแหล่ง HTML ของหน้า Magento ด้วย การผูกขอบเขต Knockout.js พิเศษ ทุกองค์ประกอบ UI ยังเชื่อมโยงกับชุดข้อมูลฝั่งเซิร์ฟเวอร์ เป้าหมายสุดท้ายคือการสร้างฟังก์ชั่นชิ้นส่วนที่ซับซ้อนของ UI ที่ไม่เพียงแค่ไฟล์จาวาสคริปต์ที่ยุ่งเหยิงเพียงไฟล์เดียว แต่ผู้ใช้ปลายทางนั้นสามารถรวมกับ<uiCompnent name="foo"/>XML ที่ใช้งานได้ง่าย

ดังนั้นคุณถูกต้องแล้วที่วิดเจ็ต modal นั้นเริ่มต้นได้ง่ายกว่า อย่างไรก็ตามหากคุณกำลังสร้างชิ้นส่วน UI ที่ซับซ้อนและต้องการให้ชิ้นส่วน UI ที่ซับซ้อนของคุณรวมถึงฟังก์ชั่นเป็นกิริยาช่วยคุณจะต้องดึงองค์ประกอบ Modal UI

อย่างน้อย - นั่นเป็นความเข้าใจปัจจุบันของฉันเกี่ยวกับสถานการณ์ / ระบบ บริบทเพิ่มเติมในซีรี่ส์ UI Componentของฉัน(ลิงก์ด้วยตนเอง) หากคุณสนใจ


ถ้าฉันมีงานสำหรับ CRUD บางอย่างที่เกี่ยวข้องกับโมเดลข้อมูลตัวอย่างแบบฟอร์ม modal form ฉันควรใช้ modal component มากกว่า modal widget! ใช่มั้ย แต่ดูเหมือนว่าเป็นการยากที่จะติดตั้ง
mrtuvn

ขอบคุณสำหรับคำตอบและลิงค์ @ alan-storm ฉันจะตรวจสอบพวกเขาอย่างแน่นอน ดูเหมือนว่าจะนำไปใช้งานได้ยากขึ้น แต่ฉันคิดว่าเป็นงานชิ้นใหญ่ที่เหมาะสมกว่า ฉันจะให้สองสามวันสำหรับคำตอบเพิ่มเติมจากนั้นยอมรับหนึ่ง
Ben Crook
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.