| Table of Contents |
|---|
...
| Info | ||
|---|---|---|
| ||
프로젝트마다 폴더 구조가 다를 수 있으므로, 가이드를 참고하여 프로젝트에 맞도록 적절히 적용해주세요. |
Synap Editor 파일 배치
- 사이냅 에디터 패키지를 프로젝트의 src 폴더 아래 적절한 위치에 배치합니다.
- 예시)
- src/synapeditor
- src/SynapEditor
- src/scripts/synapeditor
- src/scripts/SynapEditor
- ...
Synap Editor 컴포넌트 생성
- 사이냅 에디터를 생성하는 컴포넌트인 SynapEditorComponent.js 를 작성합니다.
- 사이냅 에디터를 초기화 할 때 설정해야 하는 config, html, eventListener 를 컴포넌트에 작성합니다.
- 상황에 따라 다르게 값을 적용해야 한다면 prop을 통해 config, html, eventListener 등의 값을 받아서 설정할 수 있도록 작성합니다.
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
import { useEffect } from 'react';
import license from '../scripts/synapeditor/license.json';
import SynapEditor from '../editorsscripts/synapeditor/synapeditor.min';
import '../editorsscripts/synapeditor/synapeditor.min.css';
function SynapEditorComponent({ editorId }) {
useEffect(() => {
const config = {
'editor.license': {}, // 라이센스 설정license // 라이센스를 설정합니다.
// 기타 설정을 추가합니다. 필요에 따라 prop을 통해 값을 받아서 설정할 수 있도록 처리합니다.
};
const html = ''; // 에디터 초기화시 표시할 html을 설정합니다. 필요에 따라 prop을 통해 값을 받아서 설정할 수 있도록 처리합니다.
const eventListener = {
initialized: (event) => {
// 에디터가 초기화 되었을 때 실행되는 이벤트 리스너입니다.
// 에디터가 초기화 되면 수행되어야 하는 작업을 작성합니다.
console.log('에디터 초기화 완료: ', event);
}
};
editorInstance = new SynapEditor('synapeditor'editorId, config, html, eventListener);
// 릴리즈 3.1.0 이상
// 에디터에서 사용한 리소르를 정리하는 함수로 이벤트와 참조를 제거해 메모리 누수를 방지합니다.
return () => {
if(editorInstance) {
editorInstance.destroy();
editorInstance = null;
}
}
}, [editorId]);
return (
<div id="synapeditor"{editorId}></div>
);
} |
...
export default SynapEditorComponent; |
생성한 컴포넌트 사용
- 사이냅 에디터를 생성할 곳에 SynapEditorComponent.js 를 사용합니다.
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
import SynapEditorComponent from './components/SynapEditorComponent'; // SynapEditorComponent 가져오기 function App() { return ( <> <h2>Synap Editor</h2> <SynapEditorComponent editorId="synapeditor" /> </> ); } export default App; |
...