Block JS Block
Giới thiệu
JS Block là một "Block render tùy chỉnh" rất linh hoạt, hỗ trợ trực tiếp viết script JavaScript để tạo giao diện, gắn sự kiện, gọi API dữ liệu hoặc tích hợp thư viện bên thứ ba. Phù hợp với các trường hợp visualization cá nhân hóa khó được Block có sẵn bao phủ, thử nghiệm tạm thời và mở rộng nhẹ.
API ngữ cảnh runtime
Ngữ cảnh runtime của JS Block đã được inject các khả năng thường dùng, có thể trực tiếp sử dụng:
ctx.element: Container DOM của Block (đã được đóng gói an toàn, ElementProxy), hỗ trợinnerHTML,querySelector,addEventListener, v.v.;ctx.requireAsync(url): Tải bất đồng bộ thư viện AMD/UMD theo URL;ctx.importAsync(url): Import động module ESM theo URL;ctx.openView: Mở view đã được cấu hình (Popup/Drawer/Trang);ctx.useResource(...)+ctx.resource: Truy cập dữ liệu theo cách tài nguyên;ctx.i18n.t()/ctx.t(): Khả năng quốc tế hóa có sẵn;ctx.onRefReady(ctx.ref, cb): Render sau khi container sẵn sàng, tránh vấn đề thời gian;ctx.libs.React/ctx.libs.ReactDOM/ctx.libs.antd/ctx.libs.antdIcons/ctx.libs.dayjs/ctx.libs.lodash/ctx.libs.math/ctx.libs.formula: Các thư viện thông dụng có sẵn như React / ReactDOM / Ant Design / Ant Design Icons / dayjs / lodash / math.js / formula.js, dùng cho render JSX, xử lý thời gian, thao tác dữ liệu và tính toán toán học. (ctx.React/ctx.ReactDOM/ctx.antdvẫn được giữ lại để tương thích.)ctx.render(vnode): Render React element, chuỗi HTML hoặc node DOM vào container mặc địnhctx.element; gọi nhiều lần sẽ tái sử dụng cùng React Root, và ghi đè nội dung hiện có của container.
Thêm Block
- Có thể thêm JS Block trong Trang hoặc Popup.

Trình chỉnh sửa và Snippets
Trình chỉnh sửa script của JS Block hỗ trợ tô sáng cú pháp, gợi ý lỗi và snippets có sẵn, có thể nhanh chóng chèn các ví dụ phổ biến, như: render biểu đồ, gắn sự kiện nút bấm, tải thư viện bên ngoài, render component React/Vue, dòng thời gian, thẻ thông tin, v.v.
Snippets: Mở danh sách snippets có sẵn, có thể tìm kiếm và chèn snippet được chọn vào vị trí con trỏ hiện tại của vùng chỉnh sửa mã bằng một cú nhấp.Run: Chạy trực tiếp mã trong trình chỉnh sửa hiện tại, và xuất log chạy ra panelLogsở dưới. Hỗ trợ hiển thịconsole.log/info/warn/error, lỗi sẽ được tô sáng và có thể định vị đến hàng cột cụ thể.

Và ở góc trên bên phải của trình chỉnh sửa có thể trực tiếp gọi AI Employee "Frontend Engineer · Nathan", để anh ấy giúp bạn viết hoặc chỉnh sửa script dựa trên ngữ cảnh hiện tại, "Apply to editor" một lần để áp dụng vào trình chỉnh sửa rồi chạy xem hiệu ứng. Xem chi tiết:
Môi trường runtime và bảo mật
- Container: Hệ thống cung cấp container DOM an toàn
ctx.element(ElementProxy) cho script, chỉ ảnh hưởng đến Block hiện tại, không can thiệp vào các khu vực khác của Trang. - Sandbox: Script chạy trong môi trường được kiểm soát,
window/document/navigatorsử dụng các đối tượng proxy an toàn, các API thông dụng có sẵn, hành vi nguy hiểm bị giới hạn. - Render lại: Block sau khi bị ẩn rồi hiển thị lại sẽ tự động render lại (tránh thực thi trùng lặp khi mount lần đầu).

