React의 조건부 렌더링
3574 단어 reactwebdevfrontendjavascript
간단히 말해서 조건부 렌더링은 특정 조건에 따라 구성 요소 전체 또는 일부를 렌더링할 수 있는 방법입니다. 이것은 JavaScript에서 조건이 작동하는 것과 거의 동일한 방식으로 작동하며 React 애플리케이션에서 4가지 방법으로 조건부 렌더링을 사용할 수 있습니다.
각 방법에 대해 자세히 논의해 보겠습니다.-
If/Else 조건부 렌더링
React의 if-else는 JavaScript에서와 유사하게 작동합니다. 컴포넌트를 조건부로 렌더링하는 데 사용할 수 있는 방법은 다음과 같습니다.
class Conditions extends React.Component {
constructor(props) {
super(props);
this.state = {
name = "Tejeshwer";
}
}
render() {
if(this.state.name === "Tejeshwer") {
return ( <div> Welcome Tejeshwer </div> );
} else {
return ( <div> Welcome Anonymous User </div> );
}
}
}
이 방법이나 접근 방식은 조건의 영향을 받지 않은 상태로 남아 있는 부분이 if 블록과 else 블록 모두에 대해 반복되어야 하기 때문에 DRY(자신을 반복하지 마십시오) 접근 방식에서 벗어납니다. 이제 JSX 내에 if-else를 배치하지 않는 이유가 무엇인지 알 수 있습니다.
당신의 생각은 좋지만 JSX는 함수 호출과 객체 생성을 위한 문법적 설탕이기 때문에 가능하지 않습니다. 그 때문에 우리는 그 안에 if-else 블록을 사용할 수 없습니다.
요소 변수
이 접근 방식에서는 JavaScript 변수를 사용하여 구성 요소의 조건에 따라 달라지는 특정 요소를 저장합니다. 이 접근 방식이 구현되는 방식은 다음과 같습니다.
class Conditions extends React.Component {
constructor(props) {
super(props);
this.state = {
name = "Tejeshwer";
}
}
render() {
let userName;
if(this.state.name === "Tejeshwer") {
userName = <span>Tejeshwer</span>;
} else {
userName = <span>Anonymous User</span>
}
return ( <div> Welcome {userName} </div> );
}
}
이 접근 방식의 주요 이점은 DRY 원칙을 따르고 영향을 받지 않는 부분을 계속해서 반복하지 않고 특정 조건에 따라 구성 요소의 특정 부분을 렌더링할 수 있다는 것입니다.
삼항 조건 연산자
이는 조건부 렌더링을 처리할 때 가장 널리 사용되는 접근 방식입니다. 이 접근 방식은 삼항 조건부 연산자(? :)를 사용하여 특정 조건을 기반으로 요소를 렌더링합니다. 이 접근 방식은 다음과 같이 구현됩니다.
class Conditions extends React.Component {
constructor(props) {
super(props);
this.state = {
name = "Tejeshwer";
}
}
render() {
return (
<div>
Welcome {this.state.name === "Tejeshwer" ?
<span>Tejeshwer</span> : <span>Anonymous User</span>}
</div>
)
}
}
if-else 블록과 달리 삼항 연산자를 JSX 내에서 사용할 수 있다는 것을 눈치채셨겠지만, 이것이 조건부 렌더링의 이 접근 방식을 사용하는 주요 이점이며 가장 널리 사용됩니다.
단락 연산자
이 접근 방식은 삼항 연산자를 사용하는 세 번째 접근 방식의 확장입니다. 조건이 참인 경우에만 화면에 요소를 렌더링하고 싶을 때 사용하고, 그렇지 않으면 아무 것도 렌더링하고 싶지 않습니다. 이 접근 방식은 && 연산자를 사용하며 다음과 같은 방식으로 구현할 수 있습니다.
class Conditions extends React.Component {
constructor(props) {
super(props);
this.state = {
name = "Tejeshwer";
}
}
render() {
return(
<div>
Welcome {this.state.name &&
<span>Tejeshwer</span>}
</div>
}
}
이 접근 방식에서는 먼저 '&&' 연산자의 왼쪽이 평가되고 왼쪽의 조건이 true이면 오른쪽이 반환되지만 왼쪽이 false이면 아무 것도 반환되지 않습니다.
이것은 React의 조건부 렌더링, 그것이 무엇이며 어떻게 구현하는지에 관한 것이었습니다.
네가 좋아하길 바래...
Reference
이 문제에 관하여(React의 조건부 렌더링), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tejeshwer25/conditional-rendering-in-react-1bah텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)