JSX 와 IF문 조합
- 조건부 렌더릴ㅇ의 경우 상황에 따라서 해당 컴포넌트를 보여줄지 말지 여부를 결정
 
- 3항연산자 또는 && 연사자를 더 많이쓴다. (코드가 더 짧고, 직관적)
 
3항연산자
import React from 'react'
export default function Where() {
  const where = prompt('어디로 갈까요? left/ right')
  return (
    <>
      {where === 'left' ? (<h1>여기는 왼쪽입니다</h1>) : (<h1>여기는 오른쪽입니다</h1>)} 
    </>
  )
React에서 If문 사용
prompt 함수: 브라우저상에서 값을 입력받음 
- where라는 변수에 문자열로 담긴다. 
 
import React from 'react'
export default function Where() {
  const where = prompt('어디로 갈까요? left/ right')
  if (where === 'left') {
    return (
      <> 
        <h1>여기는 왼쪽입니다.</h1>
      </>
    )
  } else {
    return (
      <>
        <h1>여기는 오른쪽입니다.</h1>
      </>
    )
  }
}
- 조건식 자체가 복잡하거나, return값의 양이 많고, 조건에 따른 결과 리턴이 완전히 달라지는 경우에는 if문을 사용하는 편이 보기에도, 처리하기에도 더 편하다. 
 
Public 폴더 사용
- React 폴더구조
 
- components 기준 상대경로

 
퍼블릭폴더로 접근하기

- 일종의 보안상의 이유로 기존  컴포넌트에서 다른 폴더에 접근을 하려고 해도 src 폴더 밖으로 나가는 것은 지원하지 않는다.
 
- 상대경로를 이용해서 src 폴더 이상으로 가서 다른 폴더에 접근하는 방법은 막힌다. 절대경로 또한 막힌다.
 
- 단, 한단계 상위 폴더로 접근하는 상대경로는 먹힌다. 
 
- 해결방법: 그럼, 백엔드 처럼 static 설정~!
 Npx create-react-app 을 통해 만들어진 리액트 앱의 경우는 public 폴더가 자동으로 static 처리가 된다.
따라서, 어느 위치에서건 / 를 써서 접근하면 public 폴더가 호출된다. 
 
- 사진의 주소 값을 
/images/dog.jpg로 지정  
export default function Image() {
  return (
    <>
      <img src="/images/dog.jpg"alt="강아지" />
    </>
  )
}
src 폴더 내부 참조는 문제 없다.

Component Composition 컴포넌트 합성
기존 JS 에서의 Class extends 상속
- class의 상속 확장
(똑같은 형태의 class를 상속(extends)을 받고 왕관기능추가) 
- 원본 클래스를 변경하면, 상속받은 클래스는 원본 클래스의 변경부분이 같이 변경된다. 
 
- 원본 클래스 존재
 
- 원본 클래스를 똑같은 형태의 클래스 1개에 상속 
 
- 상속 클래스에 왕관기능 추가 (원본 클래스는 변화 없음)
 
- 원본 클래스에 귀걸이 추가 (상속 클래스도 귀걸이가 같이 추가된다.)

 
React의 Composition(합성)
- 리액트에서는 컴포넌트 단위로만 구성을 하면 되기 때문에 Class 의 확장과 같은 복잡한 개념(생성자, super 등등) 보다는 블록 조립에 가까운 합성의 개념을 도입 했습니다
 
- 기존의 것이 필요하면 import 로 불러와서 바로 사용하고, 필요한 기능을 추가한 뒤 새로이 명명하는 방법으로 확장과 비슷한 개념을 더 단순화 하여 사용하고 있습니다
 
- 그리고 각각의 커스터마이징은 Props 를 통해 간단히 구현 가능합니다
 
specialization 특수화
합성 새로운 컴포넌트를 불러와서 새로운
컴포넌트에 자식요소를 전달해서 새로운 것을 그려주는 역할을 한다.
만들어진 컴포넌트는 import로 불러온 다음 사용