container/presenter pattern

fieldnight·2023년 12월 16일
0

export? export default?

  1. export로 내보내고 있는것 : 골라서 import가능.

  2. export default로 내보내는 것 : 한 파일에 default는 하나만 가능하다.
    하나밖에 없기 때문에 {}가 필요없다. 그리고 하나이기 때문에 기존의 이름을 그대로 들고 오지 않아도 된다. 바꿔서 적어도 상관없음.

  3. 한 파일에 있는 export default와 export를 가져오려면,
    import A, {B} from 파일
    이런 방식을 써도 된다.

  4. 혹은 한 파일 내의 export들을 다 들고 오는것도 가능한데,
    import* as qqq from 파일
    아래에서 qqq.매서드 로 사용 가능하다.

container/presenter로 구조를 나누는 방법

app.js에서 최종적으로 모든 파일이 합쳐져서 보인다.
폴더 정리 방식 :
container/presentation patteron
container.js
presentation.js
styles.js
queries.js

네개의 역할을 가진 파일로 컨테이너를 나누어 서로 연결해서
최종적으로 page에 보이도록 함.
실행할 때는 모든 것이 하나로 합쳐진다.

props의 적절한 이용

또한 바인딩이 필요한 함수를 다른 파일로 넘겨야 할 때,
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의 경우 디테일 페이지 임폴트만으로 무슨 기능을 수행 할 수 있을까?
-> 로그인/비로그인 사용자 별로 페이지 접근 권한을 나누어 줄 수 있다.

0개의 댓글

관련 채용 정보