React 또는 Vue 구성 요소에서 텍스트를 렌더링할 때 줄 바꿈이 작동하도록 합니다.
3766 단어 reactvuejavascriptcss
"Wow I am so cool \n I'm a JavaScript haiku \n render my newlines"
그러나 이러한 작은
\n
문자는 다음과 같이 React(또는 Vue) 구성 요소에 넣는 경우 존중되지 않습니다.const haiku = "Wow I am so cool \n I'm a JavaScript haiku \n render my newlines"
function BeautifulHaiku() {
return <div>{haiku}</div>
}
이 동작을 변경하고 원하는 줄 바꿈을 얻으려면 몇 가지 확실한 옵션이 있습니다.
\n을 <br />로 교체
가장 먼저 할 수 있는 일은 문자열을 분할한 다음 결과
<br />
태그를 렌더링하는 것입니다.function replaceWithBr() {
return haiku.replace(/\n/g, "<br />")
}
React에서는
dangerouslySetInnerHTML
를 사용하여 작동하도록 합니다.<p dangerouslySetInnerHTML={{__html: replaceWithBr()}} />
(이것은 "위험한"이유가 있습니다. React 팀이 멋져 보이기를 원해서가 아니라 악의적인 스크립트를 피하기 위해 거기에 무엇을 넣을지 주의해야 하기 때문입니다.)
그리고 Vue에서는
v-html
를 사용하여 작동하도록 합니다.<p v-html="replaceWithBr()">{{haiku}}</p>
CSS 공백 사용
이를 수행할 수 있는 다른 방법은
white-space
CSS 속성을 사용하고 pre-wrap
또는 pre-line
로 설정하는 것입니다..css-fix {
white-space: pre-wrap; /* or pre-line */
}
이 두 가지는 내용에 줄 바꿈이 있을 때 텍스트가 줄바꿈되도록 하고
pre-line
특히 여러 공백을 하나로 축소합니다.이것은 React와 Vue 모두에 적용될 수 있습니다!
증명해봐, 캐시디
좋아, 내 팔을 비틀어!
작동 중인 React 예제는 다음과 같습니다.
그리고 여기 Vue 예제가 있습니다!
"They're different but they're friends" - DJ Khaled
전체 공개: 저는 Vue 개발자가 아닙니다. 이것은 제가 시도했을 때 저에게 효과가 있었습니다. 나는 이것이 React에서 "적절하다"는 것을 알고 있지만 나는 멍청하기 때문에 Vue에 대해 말할 수 없습니다. 행운을 빕니다, 즐겁게 지내고, 좋은 선택을 하고, 친절하고, 코드를 작성하세요.
도움이 되었기를 바랍니다.
Reference
이 문제에 관하여(React 또는 Vue 구성 요소에서 텍스트를 렌더링할 때 줄 바꿈이 작동하도록 합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/cassidoo/make-line-breaks-work-when-you-render-text-in-a-react-or-vue-component-4m0n텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)