export로 내보내고 있는것 : 골라서 import가능.
export default로 내보내는 것 : 한 파일에 default는 하나만 가능하다.
하나밖에 없기 때문에 {}가 필요없다. 그리고 하나이기 때문에 기존의 이름을 그대로 들고 오지 않아도 된다. 바꿔서 적어도 상관없음.
한 파일에 있는 export default와 export를 가져오려면,
import A, {B} from 파일
이런 방식을 써도 된다.
혹은 한 파일 내의 export들을 다 들고 오는것도 가능한데,
import* as qqq from 파일
아래에서 qqq.매서드 로 사용 가능하다.
ㅤ
app.js에서 최종적으로 모든 파일이 합쳐져서 보인다.
폴더 정리 방식 :
container/presentation patteron
container.js
presentation.js
styles.js
queries.js
네개의 역할을 가진 파일로 컨테이너를 나누어 서로 연결해서
최종적으로 page에 보이도록 함.
실행할 때는 모든 것이 하나로 합쳐진다.
ㅤ
ㅤ
또한 바인딩이 필요한 함수를 다른 파일로 넘겨야 할 때,
props(부모->자식 단방향)를 이용하면 된다.
A : container
B : presentation--A FILE-- import B from "..." export default function page(){ return (<B 바인딩네임={바인딩함수} />)} ---B FILE--- export default function page(props){ return (<btn onclick={props.바인딩네임}>)}
ㅤ
c/p 패턴과 props를 적용한 코드 구조 예시.
결국엔 import 시 하나로 합쳐지기 때문에, router를 쓰이지 않는 곳에 import 하여 undifined API를 가져오는 일 등이 일어나지 않도록 조심
board/new 에서 boards/boardid 의 주소를 가져오면 안된다.
주소 또한 하나로 다 합쳐진다.
ㅤ
router로 동적 페이지를 생성하는 boardid의 경우 디테일 페이지 임폴트만으로 무슨 기능을 수행 할 수 있을까?
-> 로그인/비로그인 사용자 별로 페이지 접근 권한을 나누어 줄 수 있다.