2021. 9. 29. 17:29ใ๐ React
Summary
1. React ๋งํฌ๋ค์ด ์๋ํฐ ์ค์น
yarn add @uiw/react-md-editor
2. Editor ์์ฑ ์ปดํฌ๋ํธ
import MDEditor from "@uiw/react-md-editor";
const Editor = (props) => {
return (
<MDEditor
height={350}
autoFocus={false}
value={props.content}
onChange={props.contentChange}
/>
)
}
export default Editor;
3. ๋งํฌ๋ค์ด ๋ทฐ ์ปดํฌ๋ํธ
import MDEditor from "@uiw/react-md-editor";
const NoticeView = (props) => {
return (
<MDEditor.Markdown
height={500}
value={props.content}
source={props.data.content}
/>
)
}
export default NoticeView;
Result
- ์๋ํฐ ์์ฑ ํ๋ฉด
- ๋งํฌ๋ค์ด ์ ์ฉ๋ ๋ทฐ ํ๋ฉด
๐ ๊ธฐ์ธ๊ธฐ, ๊ตต๊ธฐ, ์ด๋ฏธ์ง ๋ฑ ์ ์ฉ ์ฌํญ ์ ์ ๋์ ํ์ธ โ๏ธ
CODE ์ค๋ช
'react-md-editor' ์ ๋ฆฌ์กํธ์ Markdown ์๋ํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, ๋งํฌ๋ค์ด ์ธ์ด๋ก ์๋ํฐ ์์ฑ์ด ๊ฐ๋ฅํ๊ณ , ์ค์๊ฐ ํ๋ฆฌ๋ทฐ ํ๋ฉด์ ๋ณผ ์ ์๋ ํธ๋ฆฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํด์ค๋ค.
๊ณต์ ๋ฌธ์๋ฅผ ํตํด ํฐ ์ด๋ ค์ ์์ด ์๋ํฐ ์ค์น์ ์ดํด๊ฐ ๊ฐ๋ฅํ๋ฉฐ ์๋ ์ฌ์ดํธ๋ก ์ ์ํ๋ฉด ๋๋ค.
https://uiwjs.github.io/react-md-editor/
Markdown Editor for React.
uiwjs.github.io
1. ๋ฆฌ์กํธ ๋งํฌ๋ค์ด ์๋ํฐ ์ค์น (Feat.์๋ฌ)
yarn add @uiw/react-md-editor
( ์๋ฌ๊ฐ ์๋ค๋ฉด 2๋ฒ ํญ๋ชฉ๊น์ง ์ญ ์๋๋ก ๋ด๋ ค๊ฐ๋ฉด ๋๋ค. )
ํน์ ์๋ฌ๊ฐ ๋ฌ๋ค๋ฉด ํ์ฌ node ๋ฒ์ (15.11.0)์ ๋ฌธ์ ์ผ์ ๋ค๋ฅธ ๊ฑธ ์ํ๊ณ ์์ด๋ ๋ค์ด๊ทธ๋ ์ด๋ ๋๋ 16.0.0 ๋ฒ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋๋ฅผ ํด์ฃผ๋๋กํ๋ค. ๐ฑ ๋ ธ๋ ๋ฒ์ ๋ณ๊ฒฝ์๋ ๋ค์ํ ๋ฐฉ๋ฒ์ด ์กด์ฌํ๋ค. ๋ชจ๋ n์ ํตํด ํ์ฌ node ๋ฒ์ ์ ๋ณ๊ฒฝํ๋๊ฐ, ๊ทธ ๋จ๊ณ์์๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค๋ฉด node ํ๋ก๊ทธ๋จ์ ์ ์ฒด ์ญ์ ํ ์ฌ์ค์นํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
[ Node ๋ฒ์ ๋ณ๊ฒฝ ]
1. node js ํ์ฌ ๋ฒ์ ํ์ธ
node -v
2. npm ์ด์ฉ ์บ์๋ฅผ ์ ๊ฑฐ
npm cache clean -f
3. Node ๋ฒ์ ์ ๊ด๋ฆฌํด์ฃผ๋ ๋ชจ๋ n ์ ์ค์น
npm install -g n
4. ๋ชจ๋ n์ ํตํด node ๋ฒ์ ์ ๋ฐ์ดํธ
n latest /* ์ต์ ๋ฒ์ */
n stable /* ์์ ๋ฒ์ */
n 16.0.0 /* ํน์ ๋ฒ์ */
n lts /* ์ค๋ ๊ธฐ๊ฐ ์์ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋๋ก ์ง์ํ๋ ๋ฒ์ */
์ด ์ค ๋ง์์ ๋๋ ๊ฑธ๋ก ์ค์นํ๋ฉด ๋๋ค.
์บ์ ์ญ์ ์์ ๋ถํ์คํ ์๋ฌ๊ฐ ๋ฐ์ํ๊ฑฐ๋ ์ ๋จ๊ณ๊ฐ ์ ์์ ์ผ๋ก ๋์ ์๋ ๊ฒฝ์ฐ (ํน์ ๊ท์ฐฎ๋ค๋ฉด) ์ ์ดํ์์ node.js๋ฅผ ์ญ์ ํด์ฃผ๋ฉด ๋ฐ๋ก ๋๋๋ค ! (That's what I want) ์ดํ ์ฌ์ค์น ๊ณผ์ ์ ์งํ์ฃผ๋ฉด ๋๋ค.
[ NODE ์ฌ์ค์น ]
๋ ธ๋ ์ญ์ ํ ์ํ๋ ํน์ ๋ฒ์ ์ผ๋ก ์ฌ์ค์น๋ฅผ ์ํ๋ค๋ฉด ์๋ ์ฃผ์๋ก ์ ์ํด์ฃผ์.
https://nodejs.org/ko/download/releases/
์ด์ ๋ฆด๋ฆฌ์ค | Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
์ค์น ์ํ๋ ๋ฒ์ ์ ์ ํํ๋ค๋ฉด ์์ ์ ์ปดํจํฐ ์ฌ์์ ๋ง๋ msi ํ์ผ์ ๋ค์ด๋ก๋ ํด์ฃผ๋ฉด ๋๋ค.
window์์ ๊ฐ์ธ ์ปดํจํฐ ์ฌ์์ ์์คํ > ์ ๋ณด์์ ํ์ธํ ์ ์๋ค.
msi ํ์ผ ๋ค์ด๋ก๋๊ฐ ์๋ฃ๋ฌ๋ค๋ฉด ์คํ์์ผ ๋ชจ๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก Next๋ฅผ ๋๋ฌ์ฃผ๋ฉด ์ค์น๊ฐ ์๋ฃ๋๋ค.
์ค์น ์๋ฃ๋ Node๋ cmd ์ฐฝ์ ํตํด ๋ฒ์ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
๋ด๊ฐ ์ํ๋ node ๋ฒ์ ์ผ๋ก ์ ํํ ์ค์น๋ ๊ฒ์ ํ์ธ ํ ์ ์๋ค.
๋์ ๊ฒฝ์ฐ 14.13.1๋ก ์ค์นํ ํ ๋ค์ 16.0.0 ์ผ๋ก ๋ฒ์ ์ ๋ณ๊ฒฝํ์ฌ ์๋ํฐ ์ค์น๋ฅผ ์งํํ์๋ค.
NodeJS๋ฅผ ๊น๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก ํจํค์ง ๊ด๋ฆฌ ํ๋ก๊ทธ๋จ npm์ด ์๋์ ์ผ๋ก ์ค์น๋๋๋ฐ ์์ง ๋ง๊ณ yarn๋ ์ค์นํด ์ฃผ์.
npm install -g yarn
yarn์ Facebook์์ ๋ง๋ ์๋ฐ์คํฌ๋ฆฝํธ ํจํค์ง ๋งค๋์ ๋ก npm ์์์ ๋์ํ๋ฉฐ npm๊ณผ ๋์ผํ ์ญํ ์ ์ํํ๋ค. yarn์ ํ์ฉํ๋ฉด ๋ ๋น ๋ฅด๊ณ , ๋ณด์์ ์ผ๋ก๋ ๋ฐ์ด๋ js ํจํค์ง ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ๋ค.
์๋ก ์ด ๊ธธ์๊ณ ๋ณธ๊ฒฉ์ ์ผ๋ก ์๋ํฐ๋ฅผ ์ค์นํด๋ณด์.
node๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๋ค๋ฉด ์๋ฌด ๋ฌธ์ ์์ด ๋งํฌ๋ค์ด ์๋ํฐ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ค์ด๋ก๋ ๋๋ค.
ํน์ ์์ ์ด ์ ์์ค์ธ ํ๋ก์ ํธ์ ์ฌ์ค์นํ node๊ฐ ๋ฒ์ ๋ฌธ์ ๋ก ๊ฐ๋ฑ์ ๊ฒช๊ณ ์๋ค๋ฉด package.json์์ node ์คํ ๋ฒ์ ์ ^16์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋ณ๊ฒฝ๋ node ๋ฒ์ ์ผ๋ก ์ ์ ๋์ํ๋ค.
์ด์ ์๋ํฐ ์ค์น๋ฅผ ์๋ฃํ๋ค.
๋ฌผ๋ก ๋๋ถ๋ถ ์๋ฌด๋ฐ ์๋ฌ์์ด
yarn add @uiw/react-md-editor ํ ์ค๋ก ๋ชจ๋ ๊ฒ ์ ์์ ์ผ๋ก ์ค์น๋์์ ๊ฒ์ด๋ค.
2. ์๋ํฐ ์์ฑํ๊ธฐ ( ์ฌ๊ธฐ์์ ์ฌ๊ธฐ! โค)
์ด์ ์ฐ๋ฆฌ๊ฐ ์ค์นํ react-md-editor ๋ฅผ import ํด์ฃผ๊ณ <MDEditor/> ํ๊ทธ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ณ , ์์ฑ์ ์ค์ ํด์ฃผ๋ฉด ๋๋ค.
- ์๋ํฐ ํ๋ฉด ์ฝ๋
import MDEditor from "@uiw/react-md-editor";
const Editor = (props) => {
return (
<MDEditor
height={350} // ์๋ํฐ ๋์ด ์ง์
autoFocus={false} // ์ปค์ ์๋ ์ค์ ์ง์
value={props.content}
onChange={props.contentChange} // ์์ฑ๋ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
/>
)
}
export default Editor;
์ฌ๊ธฐ์ ์ฌ์ฉ์๊ฐ ์์ฑํ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ํ๋จ์ ์๋ํฐ ๋ทฐ ํ๊ทธ๋ก data๋ฅผ ์ ๋ฌํด์ฃผ๋ฉด ๋๋ค.
- ๋ฐ์ดํฐ ์ถ๋ ฅ ๋งํฌ๋ค์ด์ด ์ ์ฉ๋ ๋ทฐ ํ๋ฉด
import MDEditor from "@uiw/react-md-editor";
<MDEditor.Markdown
className={styles.text}
height={500}
source={data.cont}
/>
Markdown ์๋ํฐ๊ฐ ์๋ ๊ธฐ๋ฅ ํ๊ทธ ์์ ๋ด์ฉ์ ์ ๋ฌํด์ค๊ฒฝ์ฐ
<div className={styles.text} dangerouslySetInnerHTML={{ __html: data.cont }}></div>
์๋์ ๊ฐ์ด ๋งํฌ๋ค์ด ํ์์ด ์ ์ฉ๋์ง ์์ ์ฑ ๋ด์ฉ์ด ์ถ๋ ฅ๋๋ค.
์ด์ ๋งํฌ๋ค์ด ์๋ํฐ๋ก ์์ฑ ํ ๋ฐ์ดํฐ ์ ๋ฌ์ ํตํด ๊ตฌํ๋ ์ต์ข ๋ทฐ ํ๋ฉด์ด๋ค.
Posted by Ang