이 문서는 AI에 의해 번역되었습니다. 정확한 정보는 영어 버전을 참조하세요.
URL을 통해 ESM 모듈 또는 CSS를 동적으로 로드하며, RunJS의 다양한 시나리오에 적용됩니다. 제3자 ESM 라이브러리가 필요할 때는 ctx.importAsync()를 사용하고, UMD/AMD 라이브러리는 ctx.requireAsync()를 사용합니다. .css 주소를 전달하면 스타일을 로드하고 페이지에 주입합니다.
| 시나리오 | 설명 |
|---|---|
| JSBlock | Vue, ECharts, Tabulator 등 ESM 라이브러리를 동적으로 로드하여 사용자 정의 차트, 테이블, 대시보드 등을 구현합니다. |
| JSField / JSItem / JSColumn | 렌더링을 보조하기 위해 가벼운 ESM 유틸리티 라이브러리(예: dayjs 플러그인)를 로드합니다. |
| 워크플로우 / 조작 이벤트 | 비즈니스 로직을 실행하기 전 필요에 따라 의존성을 로드합니다. |
| 매개변수 | 타입 | 설명 |
|---|---|---|
url | string | ESM 모듈 또는 CSS 주소입니다. <패키지명>@<버전> 또는 하위 경로를 포함한 <패키지명>@<버전>/<파일 경로>(예: vue@3.4.0, dayjs@1/plugin/relativeTime.js)와 같은 약식 표기를 지원하며, 설정에 따라 CDN 접두사가 붙습니다. 전체 URL도 지원합니다. .css를 전달하면 스타일을 로드하고 주입합니다. React에 의존하는 라이브러리는 ?deps=react@18.2.0,react-dom@18.2.0을 추가하여 페이지와 동일한 React 인스턴스를 공유하도록 할 수 있습니다. |
.css URL 전달 시 로드 후 페이지에 주입).vue@3.4.0은 실제로 https://esm.sh/vue@3.4.0을 요청합니다.@dnd-kit/core, react-big-calendar)는 페이지의 React 인스턴스와 충돌하여 발생하는 Invalid hook call 오류를 방지하기 위해 ?deps=react@18.2.0,react-dom@18.2.0을 추가해야 합니다.https://esm.sh)/+esm)ctx.importAsync()를 우선 사용하십시오.패키지 이름 또는 전체 URL을 사용하여 ESM 모듈과 CSS를 동적으로 로드하는 가장 기본적인 방법을 보여줍니다.
ECharts를 사용하여 막대 그래프와 꺾은선 그래프가 포함된 판매 개요 차트를 그립니다.
Tabulator를 사용하여 블록 내에 페이지네이션과 행 클릭 이벤트가 지원되는 데이터 테이블을 렌더링합니다.
ESM 방식으로 FullCalendar와 관련 플러그인을 로드하여 기본적인 월간 뷰 달력을 렌더링합니다.
@dnd-kit/core를 사용하여 블록 내에서 Box를 대상 영역으로 드래그하는 최소한의 예시를 구현합니다.
이 예시는 @dnd-kit/core에만 의존하며, Box를 특정 영역에 드래그했을 때 알림을 발생시킵니다. RunJS에서 ctx.importAsync와 React를 결합하여 간단한 드래그 앤 드롭 상호작용을 구현하는 방법을 보여줍니다.
dnd-kit의 core, sortable, utilities를 사용하여 드래그 앤 드롭으로 순서를 변경할 수 있는 수직 목록을 구현합니다.
이 예시는 @dnd-kit/core, @dnd-kit/sortable, @dnd-kit/utilities를 기반으로 드래그 정렬이 가능한 목록을 구현하며, 정렬이 완료되면 순서를 업데이트하고 "List reordered" 메시지를 표시합니다.
react-big-calendar와 date-fns 현지화를 통해 현재 블록에 이벤트 표시가 가능한 달력 컴포넌트를 렌더링합니다.
frappe-gantt를 사용하여 작업의 시작/종료 시간과 진행률을 보여주는 간트 차트 뷰를 렌더링합니다.
@asseinfo/react-kanban을 사용하여 블록 내에 Backlog, Doing 등의 열이 포함된 기본 칸반 보드를 렌더링합니다.
ctx.importAsync()를 우선 사용하십시오.?deps=react@18.2.0,react-dom@18.2.0을 추가해야 하며, 버전은 페이지의 React 버전과 일치해야 합니다. 그렇지 않으면 Invalid hook call 오류가 발생할 수 있습니다.