เอกสารนี้แปลโดย AI สำหรับข้อมูลที่ถูกต้อง กรุณาดูเวอร์ชันภาษาอังกฤษ
JS Block เป็น "บล็อกการเรนเดอร์แบบกำหนดเอง" ที่มีความยืดหยุ่นสูง รองรับการเขียนสคริปต์ JavaScript โดยตรงเพื่อสร้างอินเทอร์เฟซ, ผูกเหตุการณ์, เรียกใช้พอร์ตข้อมูล หรือรวมไลบรารีภายนอก เหมาะสำหรับสถานการณ์ที่บล็อกในตัวเข้าถึงได้ยาก เช่น การแสดงผลข้อมูลเฉพาะตัว, การทดลองชั่วคราว และการขยายระบบแบบน้ำหนักเบาครับ/ค่ะ
Runtime Context ของ JS Block ได้รับการฉีดความสามารถที่ใช้บ่อยเพื่อให้สามารถใช้งานได้โดยตรงครับ/ค่ะ:
ctx.element: คอนเทนเนอร์ DOM ของบล็อก (มีการห่อหุ้มเพื่อความปลอดภัย ElementProxy) รองรับ innerHTML, querySelector, addEventListener เป็นต้นครับ/ค่ะctx.requireAsync(url): โหลดไลบรารี AMD/UMD แบบอะซิงโครนัสตาม URL ครับ/ค่ะctx.importAsync(url): นำเข้าโมดูล ESM แบบไดนามิกตาม URL ครับ/ค่ะctx.openView: เปิดมุมมองที่กำหนดค่าไว้ (หน้าต่างป๊อปอัป/ลิ้นชัก/หน้าเพจ) ครับ/ค่ะctx.useResource(...) + ctx.resource: เข้าถึงข้อมูลในรูปแบบทรัพยากรครับ/ค่ะctx.i18n.t() / ctx.t(): ความสามารถด้านภาษา (i18n) ในตัวครับ/ค่ะctx.onRefReady(ctx.ref, cb): เรนเดอร์หลังจากคอนเทนเนอร์พร้อม เพื่อหลีกเลี่ยงปัญหาลำดับเวลาครับ/ค่ะctx.libs.React / ctx.libs.ReactDOM / ctx.libs.antd / ctx.libs.antdIcons / ctx.libs.dayjs / ctx.libs.lodash / ctx.libs.math / ctx.libs.formula: ไลบรารีทั่วไปในตัว เช่น React / ReactDOM / Ant Design / Ant Design Icons / dayjs / lodash / math.js / formula.js สำหรับการเรนเดอร์ JSX, การจัดการเวลา, การจัดการข้อมูล และการคำนวณทางคณิตศาสตร์ครับ/ค่ะ (ctx.React / ctx.ReactDOM / ctx.antd ยังคงถูกเก็บไว้เพื่อความเข้ากันได้)ctx.render(vnode): เรนเดอร์องค์ประกอบ React, สตริง HTML หรือโหนด DOM ไปยังคอนเทนเนอร์เริ่มต้น ctx.element การเรียกใช้หลายครั้งจะใช้ React Root เดิมซ้ำและเขียนทับเนื้อหาที่มีอยู่ของคอนเทนเนอร์ครับ/ค่ะ
ตัวแก้ไขสคริปต์ของ JS Block รองรับการเน้นไวยากรณ์ (syntax highlighting), การแจ้งเตือนข้อผิดพลาด และส่วนโค้ดในตัว (Snippets) ช่วยให้แทรกตัวอย่างทั่วไปได้อย่างรวดเร็ว เช่น การเรนเดอร์แผนภูมิ, การผูกเหตุการณ์ปุ่ม, การโหลดไลบรารีภายนอก, การเรนเดอร์คอมโพเนนต์ React/Vue, ไทม์ไลน์, การ์ดข้อมูล เป็นต้นครับ/ค่ะ
Snippets: เปิดรายการส่วนโค้ดในตัว สามารถค้นหาและแทรกส่วนที่เลือกลงในตำแหน่งเคอร์เซอร์ปัจจุบันในพื้นที่แก้ไขโค้ดได้ในคลิกเดียวครับ/ค่ะRun: รันโค้ดในตัวแก้ไขโดยตรง และส่งออกบันทึกการรันไปยังแผง Logs ด้านล่าง รองรับการแสดง console.log/info/warn/error ข้อผิดพลาดจะถูกเน้นและสามารถระบุตำแหน่งแถวและคอลัมน์ได้ครับ/ค่ะ
นอกจากนี้ ที่มุมขวาบนของตัวแก้ไขสามารถเรียกใช้พนักงาน AI "Frontend Engineer · Nathan" เพื่อให้เขาช่วยเขียนหรือแก้ไขสคริปต์ตามบริบทปัจจุบัน และคลิก "Apply to editor" เพื่อนำไปใช้ในตัวแก้ไขก่อนรันเพื่อดูผลลัพธ์ได้ครับ/ค่ะ ดูรายละเอียดเพิ่มเติมได้ที่:
ctx.element (ElementProxy) ให้กับสคริปต์ ซึ่งส่งผลเฉพาะกับบล็อกปัจจุบันและไม่รบกวนพื้นที่อื่นของหน้าเพจครับ/ค่ะwindow/document/navigator ใช้พร็อกซีออบเจกต์ที่ปลอดภัย API ทั่วไปสามารถใช้งานได้ แต่พฤติกรรมที่มีความเสี่ยงจะถูกจำกัดครับ/ค่ะclass หรือแอตทริบิวต์ [name=...] เป็นหลัก หลีกเลี่ยงการใช้ id ที่คงที่ เพื่อป้องกันปัญหา id ซ้ำซ้อนในหลายบล็อกหรือหน้าต่างป๊อปอัปซึ่งอาจทำให้สไตล์หรือเหตุการณ์ขัดแย้งกันครับ/ค่ะ