เอกสารนี้แปลโดย AI หากมีข้อมูลที่ไม่ถูกต้อง โปรดดูเวอร์ชันภาษาอังกฤษ
JS Block คือบล็อกสำหรับเรนเดอร์แบบกำหนดเองที่ยืดหยุ่นสูงครับ/ค่ะ ที่รองรับการเขียนสคริปต์ JavaScript ได้โดยตรงเพื่อสร้างส่วนติดต่อผู้ใช้ (UI), ผูกเหตุการณ์ (bind events), เรียกใช้ API ข้อมูล หรือเชื่อมต่อกับไลบรารีภายนอก เหมาะสำหรับสถานการณ์ที่บล็อกในตัวอาจไม่สามารถตอบโจทย์ได้ทั้งหมด เช่น การแสดงผลข้อมูลแบบเฉพาะบุคคล, การทดลองชั่วคราว หรือการขยายฟังก์ชันการทำงานแบบเบาๆ ครับ/ค่ะ
JS Block มีความสามารถที่ใช้บ่อยๆ ถูกฉีดเข้ามาใน Runtime Context ให้พร้อมใช้งานได้ทันทีครับ/ค่ะ:
ctx.element: DOM container ของบล็อก (ถูกห่อหุ้มอย่างปลอดภัยด้วย ElementProxy) รองรับ innerHTML, querySelector, addEventListener และอื่นๆ ครับ/ค่ะctx.requireAsync(url): โหลดไลบรารี AMD/UMD แบบอะซิงโครนัสผ่าน URLctx.importAsync(url): นำเข้าโมดูล ESM แบบไดนามิกผ่าน URLctx.openView: เปิดมุมมองที่กำหนดค่าไว้ (เช่น ป๊อปอัป, ลิ้นชัก, หน้า)ctx.useResource(...) + ctx.resource: เข้าถึงข้อมูลในรูปแบบของทรัพยากรctx.i18n.t() / ctx.t(): ความสามารถในการรองรับหลายภาษา (internationalization) ในตัวctx.onRefReady(ctx.ref, cb): เรนเดอร์หลังจากคอนเทนเนอร์พร้อมใช้งาน เพื่อหลีกเลี่ยงปัญหาเรื่องลำดับเวลาctx.libs.React / ctx.libs.ReactDOM / ctx.libs.antd / ctx.libs.antdIcons / ctx.libs.dayjs: ไลบรารีทั่วไปที่มาพร้อมในตัว เช่น React, ReactDOM, Ant Design, ไอคอน Ant Design และ dayjs สำหรับการเรนเดอร์ JSX และการจัดการเวลาครับ/ค่ะ (ยังคงเก็บ ctx.React / ctx.ReactDOM / ctx.antd ไว้เพื่อความเข้ากันได้)ctx.render(vnode): เรนเดอร์ React element, สตริง HTML หรือ DOM node ไปยังคอนเทนเนอร์เริ่มต้น ctx.element ครับ/ค่ะ การเรียกใช้หลายครั้งจะใช้ React Root เดียวกันซ้ำ และจะเขียนทับเนื้อหาที่มีอยู่ในคอนเทนเนอร์คุณสามารถเพิ่ม JS Block ลงในหน้าเพจหรือป๊อปอัปได้ครับ/ค่ะ

ตัวแก้ไขสคริปต์ของ JS Block รองรับการเน้นไวยากรณ์ (syntax highlighting), คำแนะนำข้อผิดพลาด และมี Snippets (โค้ดตัวอย่าง) ในตัวครับ/ค่ะ ช่วยให้คุณสามารถแทรกตัวอย่างที่ใช้บ่อยได้อย่างรวดเร็ว เช่น การเรนเดอร์แผนภูมิ, การผูกเหตุการณ์ปุ่ม, การโหลดไลบรารีภายนอก, การเรนเดอร์คอมโพเนนต์ React/Vue, ไทม์ไลน์, การ์ดข้อมูล และอื่นๆ
Snippets: เปิดรายการโค้ด Snippets ที่มีในตัว คุณสามารถค้นหาและแทรก Snippet ที่เลือกไปยังตำแหน่งเคอร์เซอร์ปัจจุบันในพื้นที่แก้ไขโค้ดได้ด้วยคลิกเดียวRun: เรียกใช้โค้ดในตัวแก้ไขปัจจุบันโดยตรง และแสดงบันทึกการทำงานออกไปยังแผง Logs ด้านล่างครับ/ค่ะ รองรับการแสดง console.log/info/warn/error โดยข้อผิดพลาดจะถูกเน้นและสามารถระบุตำแหน่งบรรทัดและคอลัมน์ที่แน่นอนได้
นอกจากนี้ คุณยังสามารถเรียกใช้ AI Employee “Frontend Engineer · Nathan” ได้โดยตรงจากมุมขวาบนของตัวแก้ไขครับ/ค่ะ Nathan จะช่วยคุณเขียนหรือแก้ไขสคริปต์ตามบริบทปัจจุบันได้ จากนั้นคุณสามารถคลิก “Apply to editor” เพื่อนำไปใช้ในตัวแก้ไขและรันเพื่อดูผลลัพธ์ได้เลยครับ/ค่ะ ดูรายละเอียดเพิ่มเติมได้ที่:
ctx.element (ElementProxy) สำหรับสคริปต์ครับ/ค่ะ ซึ่งจะส่งผลกระทบเฉพาะบล็อกปัจจุบันเท่านั้น และไม่รบกวนส่วนอื่นๆ ของหน้าเพจwindow/document/navigator จะใช้ proxy object ที่ปลอดภัย ทำให้สามารถใช้ API ทั่วไปได้ แต่จะจำกัดพฤติกรรมที่มีความเสี่ยงclass หรือ attribute selector อย่าง [name=...] ครับ/ค่ะ หลีกเลี่ยงการใช้ id แบบตายตัว เพื่อป้องกันปัญหา id ซ้ำกันในบล็อก/ป๊อปอัปหลายแห่ง ซึ่งอาจนำไปสู่ความขัดแย้งของสไตล์หรือเหตุการณ์ได้