Framework/React

[React] innerHTML & ๋™์ ์œผ๋กœ HTML ์ฝ”๋“œ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•

yuri lee 2022. 10. 2. 09:18
๋ฐ˜์‘ํ˜•

Intro

react ์—์„œ ๋™์ ์œผ๋กœ HTML ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ํ•œ ์˜ˆ์‹œ๋กœ 

 

"message" : "No: 1, 2\nHello World!"

 

ํ•ด๋‹น text ์—์„œ \n ๋ฅผ ์‹ค์ œ ํƒœ๊ทธ๋กœ ๋ฐ”๊ฟ”์•ผ ํ•œ๋‹ค๊ณ  ํ•ฉ์‹œ๋‹ค. 

import "./App.css";

function App() {
  const message = "No: 1, 2\nHello World!";

  return (
    <div className="App">
      <br />
      <div>{message}</div>
      <br />
    </div>
  );
}

export default App;

ํ˜„์žฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถœ๋ ฅ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 

 

How to 

react ์—์„œ๋Š” ํ…์ŠคํŠธ๋กœ ๋œ HTML ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ์—๋Š” react์˜ ๊ทœ์น™์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

dangerouslySetInnerHTML={{ __html: htmlCode }}

 

import "./App.css";

function App() {
  const message = "No: 1, 2\nHello World!";
  const transform = (str) => {
    return str.replace(/\n/g, "<br/>");
  };

  return (
    <div className="App">
      <br />
      <div dangerouslySetInnerHTML={{ __html: transform(message) }}></div>
      <br />
    </div>
  );
}

export default App;

<br/> ํƒœ๊ทธ๊ฐ€ ์ž˜ ์ ์šฉ๋˜์–ด ์ถœ๋ ฅ๋˜๊ณ  ์žˆ๋Š” ๋ชจ์Šต์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

๋ฐ˜์‘ํ˜•