React란?
[Node.js] React.js 란? / React 사용법 ( create-react-app )
React란? 웹 사이트 / 앱의 화면(UI)을 만들어주는 Node.js 패키지 (페북이 만듬) React 탄생 배경 요즘 웹사이트는, 규모가 커질때로 커지고, 사용자가 직접 컨트롤 할 수 있는 부분이 많아지고 있다.
defineall.tistory.com
배경 설명
React는 문자열에서 html 태그를 사용하지 못하도록 보안처리가 되어있다.
( 사용자가 입력란에 html 태그를 사용해 조종하지 못하도록 하는 것 )
문자열에 html 태그를 사용하고 싶을 때는, 컴포넌트의 dangerouslySetInnerHTML 요소를 사용한다.
dangerouslySetInnerHTML 사용하기
<Example
dangerouslySetInnerHTML={{
__html: "<mark>안녕하세요</mark>",
}}
/>
sanitizeHtml 라이브러리 사용해서, 특정 태그만 사용하도록 하기
sanitizeHtml 설치
npm i sanitize-html
// 타입스크립트 사용시 아래 라이브러리도 함께 설치
npm i @types/sanitize-html
sanitizeHtml 사용하기
const cleanedString = sanitizeHTML(
"<mark>안녕하세요</mark>",
{
allowedTags: ["mark"]
}
)
// 문자열 내부의 mark 태그를 제외한 모든 태그를 제거해준다.
<Example
dangerouslySetInnerHTML={{
__html: cleanedString,
}}
/>
// 필터링된 최종 문자열을 컴포넌트에 넣기
반응형