[code-review] 1

kirin.log·2021년 9월 7일
0
post-custom-banner

1) 조건문은 가능하면 postive 로 하기

// 🌱 기존 내 코드

useEffect(() => {
    if (isLiveStreamActive == false) {
      // 영상 송출 중이 아닐 때
    }
    else {
      // 영상 송출 중일 때
    }
});



// 💡 코드 리뷰 후

useEffect(() => {
    if(isLiveStreamActive) {
       // 영상 송출 중일 때
    }
    else {
       // 영상 송출 중이 아닐 때 
    }
}

2) 불필요한 state 생성하지 않기

// 🌱 기존 내 코드

const [isAlertText, setIsAlertText] = useState(false); 
// 경고문구의 상태를 보여주는 state 생성 --- ❗️ 불필요

useEffect(() => {
    if (isLiveStreamActive) {
      setIsAlertText(false);  // 영상 송출 중이면 경고문구 false(off)
    } else {
      setIsAlertText(true);  // 영상 송출 중이 아니면 경고문구 true(on)
    }
  }, [isLiveStreamActive]);

{isRehearsal && (
  <>
    {isAlertText 
      ? ( <WarningText>
             <p>{t('서버에서 받아온 다국어 처리')}</p>
          </WarningText> ) 
      : null}
   </>
)};
// 리허설 모드(true)에서, isAlertText가 true면(영상 송출중이 아니라는 뜻) 경고문구 보여주고 
// 아니면 null

{!isRehearsal && (
  <>
    {isAlertText 
      ? ( <WarningText>
             <p>{t('서버에서 받아온 다국어 처리')}</p>
          </WarningText> ) 
    : null}
  </>
)};
// 방송 모드(false)에서, isAlertText가 true면(영상 송출중이 아니라는 뜻) 경고문구 보여주고 
// 아니면 null



// 💡 코드 리뷰 후

{isRehearsal && (
  <>
    {!isLiveStreamActive && ( 
	  <WarningText>
             <p> {t('서버에서 받아온 다국어 처리')} </p>
          </WarningText> )}
   </>
)};
// 리허설 모드(true)에서 영상 송출중이 아니면(!isLiveStreamActive) && 뒤를 실행

{!isRehearsal && (
  <>
    {!isLiveStreamActive && ( 
	  <WarningText>
             <p> {t('서버에서 받아온 다국어 처리')} </p>
          </WarningText> )}
   </>
)};
// 방송 모드(false)에서 영상 송출중이 아니면(!isLiveStreamActive) && 뒤를 실행

// isLiveStreamActive(=boolean) 이 존재하므로 굳이 isAlertText를 만들 필요가 없다
// 즉, isLiveStreamActive 값으로 대신 사용할 수 있다

📌 삼항 연산자를 사용할 때, true(?)면 실행하고 아니면(:) null 이라는 식이 있을 때는
굳이 null을 써줄 필요가 없다. 따라서 조건 && 실행코드 로 간단히 만들 수 있다.

// 예시
{ thisIsTrue ? <p>true</p> : null }
{ thisIsTrue && <p>true</p> }

📌 불필요한 state를 만들 필요 없다 (주의!)

const [isAlertText, setIsAlertText] = useState(false); 
// isAlertText의 상태를 만들어 준 뒤

useEffect(() => {
    if (isLiveStreamActive) {
      setIsAlertText(false);  // 영상 송출 중이면 경고문구 false(off)
    } else {
      setIsAlertText(true);  // 영상 송출 중이 아니면 경고문구 true(on)
    }
  }, [isLiveStreamActive]);
// isLiveStreamActive 와 true/false가 정반대로 되게 설정하여

{isAlertText ? <WarningText /> : null}
// boolean값에 따라 삼항연산자

>> 차라리 처음부터 isLiveStreamActive의 boolean 값으로 적용하면 간단 

from mentor Joseph🧐

profile
boma91@gmail.com
post-custom-banner

0개의 댓글