🔔 [관련 정리 리스트]
*react-quill이 상단, react-quill-new이 하단에 정리되어 있음
[react-quill]
설치 및 사용법
설치
npm install react-quill
index.html 에 아래 코드 추가
<link
rel="stylesheet"
href="https://unpkg.com/react-quill@1.3.3/dist/quill.snow.css"
/>
사용하기
import React, { useState } from 'react';
import ReactQuill from 'react-quill'; //import해오기1
import 'react-quill/dist/quill.snow.css'; //import해오기2
function MyComponent() {
const [value, setValue] = useState('');
return <ReactQuill theme="snow" value={value} onChange={setValue} />; {/*value, onChange props로 전달하기*/}
}
활용하기
1. 에디터 컴포넌트 생성
import ReactQuill from 'react-quill';
import 'react-quill/dist/quill.snow.css';
interface ReactQuillEditorProps {
style?: any;
value?: string;
onChange: (value: string) => void;
}
function ReactQuillEditor({ style, value, onChange }: ReactQuillEditorProps) {
const modules = {
toolbar: {
container: [['image'], [{ header: [1, 2, 3, 4, 5, false] }], ['bold', 'underline']]
}
};
return (
<>
<ReactQuill style={style} modules={modules} value={value} onChange={onChange} />
</>
);
}
export default ReactQuillEditor;
2. 에디터 컴포넌트 사용
const [content, setContent] = useState('');
const handleEditorChange = (value: string) => {
setContent(value); // 상태 업데이트
};
...
<ReactQuillEditor
value={content}
onChange={handleEditorChange} {/*setContent대신 함수도 전달 가능*/}
style={{ width: '100%', height: '80%' }}
/>
툴바설정 참고) https://quilljs.com/docs/modules/toolbar/
결과 화면
✔ [react-quill-new]
위에 정리했던 react-quill 라이브러리를 사용했더니 아래 Error들이 떴다.
react-quill.js?v=d23b9689:5562 [Deprecation] Listener added for a 'DOMNodeInserted' mutation event. Support for this event type has been removed, and this event will no longer be fired. See https://chromestatus.com/feature/5083947249172480 for more information. >> react-quill.js에서 'DOMNodeInserted' 변이 이벤트에 대해 리스너 관련 에러. 이벤트에 대한 지원이 제거되었는데 사용하여 에러가 났다. |
ng: finddomnode is deprecated and will be removed in the next major release. instead, add a ref directly to the element you want to reference. learn more about using refs safely here: https://reactjs.org/link/strict-mode-find-node error component stack >> React에서 더 이상 findDOMNode를 사용하지 말라는 안내. findDOMNode는 React에서 특정 DOM 노드를 참조할 때 사용되었으나, 최신 React 버전에서는 폐기 예정이며 다음 주요 릴리스에서 완전히 제거될 예정이다. |
따라서 react-quill → react-quill-new 라이브러리로 사용하던 걸 변경했다.
더 최신이면서 위 에러들이 해결된 버전이다.
설치
npm install react-quill-new
(참고: index.html 에 아래 적용해두었던건 지웠음)
<link rel="stylesheet" href="https://unpkg.com/react-quill@1.3.3/dist/quill.snow.css" />
사용
import만 ReactQuill과 다르고 나머지 사용은 똑같이 해주면 된다.
import React, { useState } from 'react';
import ReactQuill from 'react-quill-new'; //import1
import 'react-quill-new/dist/quill.snow.css'; //import2
function MyComponent() {
const [value, setValue] = useState('');
return <ReactQuill theme="snow" value={value} onChange={setValue} />; {/*value, onChange props로 전달하기*/}
}
참고사이트
'React' 카테고리의 다른 글
[React] React Quill 에디터 라이브러리 사용 3-이미지 처리/편집 완료 ✨(feat.react-quill-new) (4) | 2024.10.21 |
---|---|
[React] React Quill 에디터 라이브러리 사용 2-이미지 처리/편집 중 (feat.react-quill-new) (0) | 2024.10.16 |
[React] npm 대신 yarn 사용하기 (0) | 2024.10.14 |
[React] React Query 시작하기 (0) | 2023.12.20 |
[React] React의 렌더링 방식 (0) | 2023.12.13 |