บทนำสู่ Stimulus.js

เผยแพร่แล้ว: 2022-03-10
สรุปอย่างย่อ ↬ ในบทความนี้ ไมค์ โรเจอร์สจะแนะนำให้คุณรู้จักกับ Stimulus ซึ่งเป็นเฟรมเวิร์ก JavaScript เจียมเนื้อเจียมตัวที่ช่วยเสริม HTML ที่มีอยู่ของคุณ ในตอนท้าย คุณจะมีความเข้าใจในหลักการของ Stimulus และเหตุใดจึงเป็นเครื่องมือที่มีประโยชน์ที่ควรมีติดกระเป๋าเป้ของคุณ

เว็บมีการเคลื่อนไหวค่อนข้างเร็วและการเลือกแนวทางสำหรับส่วนหน้าของคุณที่จะรู้สึกว่าสมเหตุสมผลในเวลาหนึ่งปีนั้นค่อนข้างยุ่งยาก ความกลัวที่ยิ่งใหญ่ที่สุดของฉันในฐานะนักพัฒนาคือการหยิบโปรเจ็กต์ที่ไม่ได้ถูกแตะต้องมาระยะหนึ่งแล้ว และการค้นหาเอกสารสำหรับแนวทางใดก็ตามที่พวกเขาใช้นั้นไม่มีอยู่จริงหรือหาไม่ได้ง่ายๆ ทางออนไลน์

ประมาณหนึ่งปีที่แล้ว ฉันเริ่มใช้ Stimulus และรู้สึกยินดีเป็นอย่างยิ่งกับรหัสที่ฉันกำลังจัดส่ง เป็นไลบรารี่ขนาด ประมาณ 30kb ซึ่งสนับสนุนการใช้ JavaScript แบบโรยซ้ำเล็กๆ ภายในแอปของคุณ โดยจัดระเบียบในลักษณะที่ทิ้งคำแนะนำเล็กๆ น้อยๆ ใน HTML ที่เข้าถึงได้ของคุณว่าจะค้นหา JavaScript ที่เชื่อมต่อได้จากที่ใด มันทำให้เข้าใจว่าชิ้นส่วนของ JavaScript จะโต้ตอบกับหน้าเว็บของคุณอย่างไรเกือบจะเหมือนกับการอ่านรหัสเทียม

Stimulus ถูกสร้างขึ้นโดยทีมงานที่ Basecamp ซึ่งเพิ่งเปิดตัวบริการอีเมล HEY เพื่อช่วยรักษา JavaScript ที่พวกเขาเขียนสำหรับเว็บแอปพลิเคชันของตน ในอดีต Basecamp ค่อนข้างดีในการบำรุงรักษาโครงการโอเพนซอร์ซของพวกเขา ดังนั้นฉันจึงค่อนข้างมั่นใจว่า Stimulus ได้รับการทดสอบอย่างละเอียดถี่ถ้วนแล้ว และจะได้รับการบำรุงรักษาในอีกไม่กี่ปีข้างหน้า

สิ่งกระตุ้นทำให้ฉันสร้างแอปพลิเคชันในลักษณะที่นำกลับมาใช้ใหม่ได้และเข้าถึงได้ง่าย แม้ว่าฉันไม่คิดว่า Stimulus จะเข้ามาแทนที่เว็บอย่าง React และ Vue แต่ฉันคิดว่ามันเป็นเครื่องมือที่คุ้มค่าในการเรียนรู้

คำศัพท์

เช่นเดียวกับเฟรมเวิร์กทั้งหมด Stimulus มีข้อกำหนดในการอธิบายบางสิ่งมากกว่า โชคดีที่ (และเหตุผลหลักประการหนึ่งที่ทำให้ฉันชอบ Stimulus) มีเพียงสองข้อที่คุณจำเป็นต้องรู้เกี่ยวกับ:

  • คอนโทรลเลอร์
    นี่หมายถึงอินสแตนซ์ของคลาส JavaScript ซึ่งเป็นส่วนประกอบสำคัญของแอปพลิเคชันของคุณ พูดได้อย่างปลอดภัยว่าเมื่อเราพูดถึง Stimulus Controllers เรากำลังพูดถึงคลาส JavaScript
  • ตัวระบุ
    นี่คือชื่อที่เราจะใช้เพื่ออ้างอิงคอนโทรลเลอร์ของเราใน HTML โดยใช้แอตทริบิวต์ข้อมูลที่เหมือนกันกับฐานรหัส Stimulus
เพิ่มเติมหลังกระโดด! อ่านต่อด้านล่าง↓

กระโดดลงไปในสิ่งกระตุ้น!

ในตัวอย่างต่อไปนี้ ฉันจะใช้โค้ดที่คุณสามารถวางลงในเบราว์เซอร์เพื่อเริ่มต้นได้ทันทีผ่านไลบรารีที่แจกจ่ายผ่าน unpkg.com ต่อไป ฉันจะพูดถึงแนวทางของ webpack ซึ่งได้รับการสนับสนุนอย่างสูง เนื่องจากช่วยให้จัดระเบียบโค้ดของคุณได้ดีขึ้นและเป็นแนวทางที่ใช้ในคู่มือ Stimulus

Boilerplate

See the Pen [The Boilerplate - Stimulus](https://codepen.io/smashingmag/pen/abdjXvP) โดย Mike Rogers

ดูปากกา The Boilerplate - Stimulus โดย Mike Rogers

เมื่อคุณเข้าใจสาระสำคัญของตัวอย่างข้างต้นแล้ว คุณจะมีความรู้ที่จะดำเนินการโครงการที่ใช้สิ่งกระตุ้นได้อย่างสบายใจ

สวยน่ากลัวใช่มั้ย? มาดูกันว่าทุกสิ่งกำลังทำอะไรอยู่!

application.start

บรรทัดนี้บอกให้ Stimulus เพิ่มผู้ฟังในหน้า หากคุณเรียกมันว่าเพียงครั้งเดียวที่ด้านบนสุดของหน้าของคุณก่อนที่คุณจะเพิ่มรหัส Stimulus ใด ๆ มันจะส่งคืนอินสแตนซ์ของตัวควบคุม Stimulus หลักซึ่งรวมถึงวิธีการ register ที่ใช้เพื่อบอก Stimulus เกี่ยวกับคลาสที่คุณต้องการเชื่อมต่อ ไปที่มัน

คอนโทรลเลอร์

แอตทริบิวต์ data-controller เชื่อมต่อองค์ประกอบ HTML ของเรากับอินสแตนซ์ของคลาส JavaScript ของเรา ในกรณีนี้ เราใช้ตัวระบุ "ตัวนับ" เพื่อเชื่อมต่ออินสแตนซ์ของ CounterController JavaScript กับองค์ประกอบ div ของเรา เราแจ้ง Stimulus เกี่ยวกับการเชื่อมต่อระหว่างตัวระบุนี้กับคอนโทรลเลอร์ผ่านวิธี application.register

สิ่งกระตุ้นจะตรวจสอบหน้าเว็บของคุณอย่างต่อเนื่องเมื่อมีการเพิ่มและลบองค์ประกอบที่มีแอตทริบิวต์นี้ เมื่อมีการเพิ่ม HTML ใหม่ลงในหน้าด้วยแอตทริบิวต์ data-controller มันจะเริ่มต้นอินสแตนซ์ใหม่ของคลาสคอนโทรลเลอร์ที่เกี่ยวข้อง จากนั้นเชื่อมต่อองค์ประกอบ HTML หากคุณลบองค์ประกอบนั้นออกจากหน้า มันจะเรียกวิธีการ disconnect การเชื่อมต่อในคลาสคอนโทรลเลอร์

การกระทำ

Stimulus ใช้แอ็ตทริบิวต์ data-action เพื่อกำหนดอย่างชัดเจนว่าฟังก์ชันใดของคอนโทรลเลอร์จะทำงาน การใช้ syntax event->controller#function ใครก็ตามที่อ่าน HTML จะสามารถเห็นสิ่งที่มันทำ สิ่งนี้มีประโยชน์อย่างยิ่ง เนื่องจากช่วยลดความเสี่ยงของโค้ดที่ไม่คาดคิดจากไฟล์อื่น ทำให้นำทางไปยังฐานโค้ดได้ง่ายขึ้น เมื่อฉันเห็นแนวทางที่ Stimulus สนับสนุนเป็นครั้งแรก รู้สึกเหมือนกำลังอ่าน pseudocode เลย

ในตัวอย่างข้างต้น เมื่อปุ่มเริ่มเหตุการณ์ "คลิก" ปุ่มนั้นจะถูกส่งต่อไปยังฟังก์ชัน addOne ภายในตัวควบคุม "ตัวนับ" ของเรา

เป้าหมาย

เป้าหมายคือวิธีกำหนดองค์ประกอบที่จะพร้อมใช้งานสำหรับคอนโทรลเลอร์ของคุณอย่างชัดเจน ในอดีต ฉันเคยใช้ ID, CSS class name และ data data ผสมกันเพื่อให้บรรลุเป้าหมายนี้ ดังนั้นการมี "This is the way to do it" เพียงรายการเดียวซึ่งชัดเจนมากทำให้โค้ดมีความสอดคล้องกันมากขึ้น

สิ่งนี้ต้องการการกำหนดชื่อเป้าหมายของคุณภายในคลาสคอนโทรลเลอร์ของคุณผ่านฟังก์ชัน targets และเพิ่มชื่อให้กับองค์ประกอบผ่าน data-target

เมื่อคุณได้ตั้งค่าสองชิ้นนี้แล้ว องค์ประกอบของคุณจะพร้อมใช้งานในตัวควบคุมของคุณ ในกรณีนี้ ฉันได้ตั้งค่าเป้าหมายด้วยชื่อ "เอาต์พุต" และสามารถเข้าถึงได้โดย this.outputTarget ภายในฟังก์ชันในคอนโทรลเลอร์ของเรา

เป้าหมายที่ซ้ำกัน

See the Pen [เป้าหมายซ้ำ - สิ่งเร้า](https://codepen.io/smashingmag/pen/ExPprPG) โดย Mike Rogers

ดู Pen Duplicate Targets - สิ่งเร้า โดย Mike Rogers

หากคุณมีเป้าหมายหลายรายการที่มีชื่อเดียวกัน คุณสามารถเข้าถึงได้โดยใช้เมธอด target รุ่นพหูพจน์ ในกรณีนี้เมื่อฉันเรียก this.outputTargets มันจะส่งคืนอาร์เรย์ที่มีทั้ง divs ของฉันที่มีแอตทริบิวต์ data-target="hello.output"

ประเภทงาน

คุณฟังเหตุการณ์ใด ๆ ที่คุณมักจะสามารถแนบผ่านเมธอด JavaScript addEventListener ตัวอย่างเช่น คุณสามารถฟังเมื่อมีการคลิกปุ่ม ส่งแบบฟอร์ม หรือเปลี่ยนแปลงข้อมูลป้อนเข้า

ดูปากกา [ประเภทกิจกรรม - สิ่งกระตุ้น](https://codepen.io/smashingmag/pen/wvMxNGJ) โดย Mike Rogers

ดูประเภทกิจกรรมปากกา - สิ่งกระตุ้นโดย Mike Rogers

ในการฟังเหตุการณ์ของ window หรือ document (เช่น การปรับขนาด หรือผู้ใช้ออฟไลน์) คุณจะต้องผนวก “@window” หรือ “@document” ต่อท้ายประเภท event (เช่น resize@window->console#logEvent จะเรียก ฟังก์ชัน logEvent ) บน console คอนโทรลเลอร์เมื่อปรับขนาดหน้าต่าง

มีวิธีชวเลขในการแนบเหตุการณ์ทั่วไป ซึ่งคุณสามารถละเว้นประเภทเหตุการณ์และมีการดำเนินการเริ่มต้นสำหรับประเภทองค์ประกอบ อย่างไรก็ตาม ฉันไม่แนะนำอย่างยิ่งให้ใช้การจดชวเลขเหตุการณ์ เนื่องจากจะเพิ่มจำนวนสมมติฐานที่คนที่ไม่คุ้นเคยกับ Stimulus ต้องทำเกี่ยวกับโค้ดของคุณ

ใช้ตัวควบคุมหลายตัวในองค์ประกอบเดียวกัน

บ่อยครั้งคุณอาจต้องการแยกตรรกะสองส่วนออกเป็นคลาสแยกกัน แต่ให้ปรากฏใกล้กันภายใน HTML Stimulus ช่วยให้คุณสามารถเชื่อมต่อองค์ประกอบต่างๆ กับหลายคลาสโดยวางการอ้างอิงทั้งสองไว้ใน HTML ของคุณ

ดูปากกา [Multiple Controllers - Stimulus](https://codepen.io/smashingmag/pen/XWXBOjy) โดย Mike Rogers

ดู Pen Multiple Controllers - Stimulus โดย Mike Rogers

ในตัวอย่างข้างต้น ฉันได้ตั้งค่าออบเจ็กต์ basket ซึ่งเกี่ยวข้องกับการนับจำนวนสินค้าทั้งหมดในตะกร้าเท่านั้น แต่ยังเพิ่มออบเจ็กต์ child ที่แสดงจำนวนถุงต่อสินค้า

ส่งข้อมูลไปยังออบเจกต์ของคุณ

ดูปากกา [ส่งข้อมูล - แรงกระตุ้น](https://codepen.io/smashingmag/pen/mdVjvOP) โดย Mike Rogers

ดูข้อมูลการผ่านปากกา - แรงกระตุ้น โดย Mike Rogers

สิ่งเร้าจัดเตรียมวิธีการ this.data.get และ this.data.set ภายในคลาสคอนโทรลเลอร์ ซึ่งจะทำให้คุณสามารถเปลี่ยนแอตทริบิวต์ข้อมูลที่อยู่ในเนมสเปซเดียวกับตัวระบุได้ โดยนี้ ฉันหมายความว่าถ้าคุณต้องการส่งข้อมูลไปยังตัวควบคุมสิ่งเร้าจาก HTML ของคุณ เพียงแค่เพิ่มแอตทริบิวต์เช่น data-[identifier]-a-variable ให้กับองค์ประกอบ HTML ของคุณ

เมื่อเรียกใช้ this.data.set มันจะอัปเดตค่าใน HTML ของคุณ เพื่อให้คุณสามารถเห็นการเปลี่ยนแปลงของค่าเมื่อคุณตรวจสอบองค์ประกอบโดยใช้เครื่องมือพัฒนาเบราว์เซอร์ของคุณ

การใช้แอตทริบิวต์ข้อมูลเนมสเปซเป็นวิธีที่ดีมากในการช่วยให้ชัดเจนว่าแอตทริบิวต์ data ใดใช้สำหรับโค้ดส่วนใด

เริ่มต้น เชื่อมต่อ ตัดการเชื่อมต่อ

เมื่อแอปพลิเคชันของคุณเติบโตขึ้น คุณอาจต้องเชื่อมต่อกับ 'เหตุการณ์วงจรชีวิต' เพื่อตั้งค่าเริ่มต้น ดึงข้อมูล หรือจัดการการสื่อสารแบบเรียลไทม์ Stimulus มีสามวิธีในตัวซึ่งถูกเรียกตลอดวงจรชีวิตของคลาส Stimulus

See the Pen [เริ่มต้น เชื่อมต่อ ตัดการเชื่อมต่อ - สิ่งกระตุ้น ](https://codepen.io/smashingmag/pen/ZEQjwBj) โดย Mike Rogers

ดู Pen Initialize, Connected, Disconnected - Stimulus โดย Mike Rogers

เมื่อ Stimulus เห็นองค์ประกอบที่มีแอตทริบิวต์ data-controller ตรงกัน มันจะสร้างคอนโทรลเลอร์เวอร์ชันใหม่และเรียกใช้ฟังก์ชัน initialize การดำเนินการนี้มักจะทำงานเมื่อคุณโหลดหน้าเว็บครั้งแรก แต่จะถูกเรียกใช้หากคุณผนวก HTML ใหม่เข้ากับหน้าเว็บของคุณ (เช่น ผ่าน AJAX) ที่มีข้อมูลอ้างอิงไปยังคอนโทรลเลอร์ของคุณ มันจะไม่ทำงานเมื่อคุณย้ายองค์ประกอบไปยังตำแหน่งใหม่ภายใน DOM ของคุณ

หลังจากเริ่มต้นคลาสแล้ว Stimulus จะเชื่อมต่อกับองค์ประกอบ HTML และเรียกใช้ฟังก์ชันการ connect นอกจากนี้ยังจะเรียกการ connect หากคุณต้องย้ายองค์ประกอบภายใน DOM ของคุณ ดังนั้น หากคุณต้องนำองค์ประกอบ ลบออกจากองค์ประกอบหนึ่ง แล้วผนวกกับที่อื่น คุณจะสังเกตได้เฉพาะการ connect เท่านั้นที่จะถูกเรียก

ฟังก์ชัน disconnect จะทำงานเมื่อคุณลบองค์ประกอบออกจากหน้าเว็บ ตัวอย่างเช่น หากคุณต้องการแทนที่ส่วนเนื้อหาของ HTML คุณสามารถฉีกโค้ดใดๆ ที่อาจจำเป็นต้องเรียกใช้ใหม่หากองค์ประกอบนั้นไม่อยู่ใน ตำแหน่งเดียวกัน. ตัวอย่างเช่น หากคุณมีตัวแก้ไข WYSIWYG แฟนซีซึ่งเพิ่ม HTML พิเศษจำนวนมากให้กับองค์ประกอบ คุณสามารถเปลี่ยนกลับเป็นสถานะเดิมเมื่อมีการเรียก disconnect

สืบทอดการทำงาน

ในบางครั้ง คุณอาจต้องการแบ่งปันการทำงานทั่วไปเล็กน้อยระหว่างตัวควบคุม Stimulus ของคุณ สิ่งที่ยอดเยี่ยมเกี่ยวกับ Stimulus คือ (ภายใต้ประทุน) คุณกำลังเชื่อมต่อคลาส JavaScript ของ vanilla กับองค์ประกอบ HTML ดังนั้นฟังก์ชันการแชร์จึงควรรู้สึกคุ้นเคย

ดูปากกา [ฟังก์ชันสืบทอด - สิ่งกระตุ้น](https://codepen.io/smashingmag/pen/JjGBxbq) โดย Mike Rogers

ดูฟังก์ชัน Pen Inheriting - Stimulus โดย Mike Rogers

ในตัวอย่างนี้ ฉันตั้งค่าคลาสพาเรนต์ชื่อ ParentController ซึ่งขยายโดยคลาสย่อยที่ชื่อ ChildController สิ่งนี้ทำให้ฉันได้รับเมธอดจาก ParentController ดังนั้นฉันจึงไม่ต้องทำซ้ำโค้ดภายใน ChildController ของฉัน

ใช้ในการผลิต

ฉันได้สาธิตตัวอย่างการใช้ Stimulus แบบสแตนด์อโลนแบบสแตนด์อโลนบางส่วน ซึ่งจะช่วยให้คุณได้ลิ้มรสของสิ่งที่คุณสามารถทำได้ ฉันยังคิดว่าฉันควรสัมผัสถึงวิธีที่ฉันใช้ในการผลิตและวิธีที่มันใช้ได้ผลสำหรับฉัน

เว็บแพ็ค

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

คุณไม่จำเป็นต้องใช้ webpack หากคุณต้องการใช้ Stimulus แต่จะช่วยทำความสะอาดประสบการณ์ต่างๆ โดยส่วนตัวแล้ว Stimulus เป็นห้องสมุดที่ช่วยแนะนำให้ฉันรู้จักกับ Webpack และรู้สึกถึงคุณค่าที่มันมอบให้จริงๆ

ข้อตกลงชื่อไฟล์

ฉันได้กล่าวถึงในบทนำของบทความนี้ว่าฉันชอบใช้ Stimulus เพราะรู้สึกว่ามีระเบียบ สิ่งนี้ชัดเจนเมื่อคุณรวมเข้ากับ Webpack ซึ่งทำให้สามารถโหลดและลงทะเบียนตัวควบคุมได้อัตโนมัติ

เมื่อคุณตั้งค่า Stimulus ใน Webpack แล้ว ขอแนะนำให้ตั้งชื่อไฟล์เช่น [identifier]_controller.js โดยที่ตัวระบุคือสิ่งที่คุณจะส่งผ่านไปยังแอตทริบิวต์ data-controller ของ HTML

เมื่อโปรเจ็กต์ของคุณเติบโตขึ้น คุณอาจต้องการย้ายตัวควบคุม Stimulus ของคุณไปไว้ในโฟลเดอร์ย่อย ในทางมหัศจรรย์ Stimulus จะแปลงขีดล่างเป็นขีดกลาง และโฟลเดอร์ฟอร์เวิร์ดสแลชเป็นขีดสองขีด ซึ่งจะกลายเป็นตัวระบุของคุณ ตัวอย่างเช่น ชื่อไฟล์ chat/conversation_item_controller.js จะมีตัวระบุ chat--conversation-item

รักษาจาวาสคริปต์ให้น้อยลง

หนึ่งในคำพูดที่ฉันชอบคือ "The Best Code is No Code At All" ฉันพยายามใช้แนวทางนี้กับโครงการทั้งหมดของฉัน

เว็บเบราว์เซอร์มีการพัฒนาไปมาก ฉันค่อนข้างมั่นใจว่าสิ่งที่ฉันจำเป็นต้องเขียน JavaScript ในวันนี้ส่วนใหญ่จะกลายเป็นมาตรฐานและนำไปใช้ในเบราว์เซอร์ภายใน 5 ปีข้างหน้า ตัวอย่างที่ดีของสิ่งนี้คือองค์ประกอบรายละเอียด เมื่อฉันเริ่มการพัฒนาครั้งแรก มันเป็นเรื่องธรรมดามากที่จะต้องโค้ดฟังก์ชันนั้นด้วยตนเองโดยใช้ jQuery

ด้วยเหตุนี้ หากฉันสามารถเขียน HTML ที่เข้าถึงได้โดยใช้ JavaScript แบบโปรยปรายเพื่อตอบสนองความต้องการของฉัน ด้วยความคิดที่ว่า “สิ่งนี้ได้ผลวันนี้ แต่ใน 5 ปีฉันต้องการแทนที่สิ่งนี้อย่างง่ายดาย” ฉันจะมีความสุข นักพัฒนา สิ่งนี้ทำได้ง่ายกว่ามากเมื่อคุณเขียนโค้ดน้อยลงเพื่อเริ่มต้น ซึ่งสิ่งเร้าให้ยืมตัวมันเอง

HTML ก่อน ตามด้วย JavaScript

แง่มุมหนึ่งที่ฉันชอบมากเกี่ยวกับวิธีการที่ Stimulus สนับสนุนคือฉันสามารถมุ่งเน้นไปที่การส่ง HTML ไปยังผู้ใช้ของฉัน ซึ่งจากนั้นก็เพิ่ม JavaScript เล็กน้อย

ฉันเป็นแฟนตัวยงของการใช้ความสนใจของผู้ใช้ในช่วงสองสามมิลลิวินาทีแรกเพื่อให้ได้สิ่งที่ฉันต้องแบ่งปันกับพวกเขา - ต่อหน้าพวกเขา จากนั้นกังวลเกี่ยวกับการตั้งค่าเลเยอร์การโต้ตอบในขณะที่ผู้ใช้สามารถเริ่มประมวลผลสิ่งที่พวกเขาเห็นได้

นอกจากนี้ หาก JavaScript ล้มเหลวด้วยเหตุผลใดก็ตาม ผู้ใช้ยังสามารถเห็นเนื้อหาและโต้ตอบกับเนื้อหาได้โดยไม่ต้องใช้ JavaScript ตัวอย่างเช่น แทนที่จะส่งแบบฟอร์มผ่าน AJAX แบบฟอร์มจะส่งผ่านคำขอแบบฟอร์มดั้งเดิมซึ่งจะโหลดหน้าซ้ำ

บทสรุป

ฉันชอบสร้างไซต์ที่ต้องใช้ JavaScript ที่บำรุงรักษาได้เพียงเล็กน้อยเพื่อปรับปรุงประสบการณ์ผู้ใช้ บางครั้งมันก็ดีที่จะสร้างบางสิ่งที่ให้ความรู้สึกเรียบง่ายขึ้น การมีบางอย่างที่มีน้ำหนักเบานั้นยอดเยี่ยมมาก ฉันชอบที่ไม่ต้องโหลดความรู้ความเข้าใจมากเกินไป มันค่อนข้างชัดเจนว่าจะจัดระเบียบไฟล์ของคุณอย่างไร และตั้งค่าเบรดครัมบ์เล็กๆ น้อยๆ ที่บอกใบ้ว่า JavaScript จะทำงานด้วยชิ้นส่วนของ HTML อย่างไร

ฉันมีความสุขมากที่ได้ทำงานกับ Stimulus ไม่มีอะไรมากไป ดังนั้นช่วงการเรียนรู้จึงค่อนข้างอ่อนโยน ฉันรู้สึกค่อนข้างมั่นใจว่าถ้าฉันต้องส่งรหัสของฉันไปให้คนอื่น พวกเขาจะเป็นนักพัฒนาที่มีความสุข ฉันขอแนะนำให้ลองใช้ดู แม้ว่าจะเป็นเพียงเพราะความอยากรู้ล้วนๆ

ช้างในห้องนั้นเป็นอย่างไรเมื่อเทียบกับ React และ Vue แต่ในใจของฉัน พวกมันเป็นเครื่องมือที่แตกต่างกันสำหรับความต้องการที่แตกต่างกัน ในกรณีของฉัน ฉันมักจะแสดงผล HTML จากเซิร์ฟเวอร์ของฉัน และฉันกำลังเพิ่ม JavaScript เล็กน้อยเพื่อปรับปรุงประสบการณ์ใช้งาน หากฉันกำลังทำอะไรที่ซับซ้อนกว่านี้ ฉันจะพิจารณาแนวทางอื่น (หรือยกเลิกข้อกำหนดเพื่อช่วยให้โค้ดของฉันดูเรียบง่าย)

อ่านเพิ่มเติม

  • หน้าแรกของสิ่งกระตุ้น
    พวกเขามีคู่มือที่ยอดเยี่ยมที่จะกล่าวถึงแนวคิดที่ฉันได้สรุปไว้ข้างต้นในเชิงลึกมากขึ้น
  • Stimulus GitHub Repository
    ฉันได้เรียนรู้มากมายเกี่ยวกับวิธีการทำงานของสิ่งกระตุ้นโดยการสำรวจโค้ดของพวกเขา
  • สูตรกระตุ้นเศรษฐกิจ
    คู่มือสรุปไว้ในหน้าเดียว
  • Stimulus Forum
    การได้เห็นคนอื่น ๆ ที่ทำงานกับ Stimulus ทำให้ฉันรู้สึกเหมือนถูกใช้งานในป่า