Tổng quan RunJS

RunJS là môi trường thực thi JavaScript trong NocoBase được sử dụng cho các kịch bản như JS Block, JS Field, JS Action. Mã được chạy trong sandbox bị giới hạn, có thể truy cập an toàn ctx (API ngữ cảnh) và có các khả năng sau:

  • Top-level async (Top-level await)
  • Import module bên ngoài
  • Render trong container
  • Biến toàn cục

Top-level async (Top-level await)

RunJS hỗ trợ top-level await, không cần bọc trong IIFE.

Không khuyến nghị

async function test() {}
(async () => {
  await test();
})();

Khuyến nghị

async function test() {}
await test();

Import module bên ngoài

  • Module ESM sử dụng ctx.importAsync() (khuyến nghị)
  • Module UMD/AMD sử dụng ctx.requireAsync()

Render trong container

Sử dụng ctx.render() để render nội dung vào container hiện tại (ctx.element), hỗ trợ ba dạng sau:

Render JSX

ctx.render(<button>Button</button>);

Render DOM node

const div = document.createElement('div');
div.innerHTML = 'Hello World';

ctx.render(div);

Render chuỗi HTML

ctx.render('<h1>Hello World</h1>');

Biến toàn cục

  • window
  • document
  • navigator
  • ctx