인프런 커뮤니티 질문&답변

정문채님의 프로필 이미지
정문채

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

안녕하세요 제로초님 nextjs로 빌더를 만들어볼까 하는데 힌트를 찾지못해 질문드립니다.

해결된 질문

작성

·

212

0

안녕하세요 제로초님.
 
지금 포트폴리오를 만드는김에 빌더까지 확장해서 만들어 볼까 싶은데 힌트를 찾지 못해서 질문 드립니다.
 
일단 각 게시판 별로 스킨을 만들어서 DB에 스킨명을 저장할 생각입니다. fs으로 스킨명의 js파일을 찾아 저장할 생각인데 문제는 해당 컴포넌트를 어떻게 import해서 가져와서 뿌려주느냐 입니다.
 
 
위 스샷처럼 list에 Basic 이라는 리스트 컴포넌트와 Thumbnail이라는 리스트 컴포넌트 2개를 가지고 있습니다.
예를들어서 notice게시판과 photo게시판 2개의 게시판이 있고,
db에 게시판 설정 테이블을 만들고
notice 게시판은 리스트 스킨을 Basic으로 저장하고,
photo게시판은 Thumbnail로 저장합니다.
notice라는 게시판에서는 Basic 컴포넌트를 ,
photo라는 게시판에서는 Thumbnail컴포넌트를 불러와 사용하게 하려 하는데
 
제가 node를 다루기 전엔 php만 다뤄봐서 php에선 그냥 단순히 스킨명을 string으로 가져와서
include로 가져왔으면 됐는데 node에서는 어떻게 하면 따로 불러와서 사용할수있는지 궁급합니다.
 
혹시나 제가 만들려는 접근방식이 틀렸다면, 검색 키워드좀 부탁드리겠습니다.
감사합니다

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

일단 스킨은 다 만들어두고

const Layout = skin(db에서 받아온 것) === 'basic' ? Basic : Thumbnail;

이런 식으로 구분해서

<Layout>
  <컨텐츠>
</Layout>

해야 합니다.

정문채님의 프로필 이미지
정문채
질문자

답변 감사드립니다. 2개일때는 위에 답변해 주신대로 나오는데 그렇다면 3개 이상일때는 어떻게 해야할까요? 하나의 스킨을만들때마다 계속 if문으로 추가 하기엔 조금 번거로워보여서요

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

여러 개가 있고 추후 계속 늘어난다면 styled-components의 themeprovider 고려해보셔야할 것 같습니다. 리액트 단에서 파일로 컨트롤하기는 무리가 있습니다.

정문채님의 프로필 이미지
정문채

작성한 질문수

질문하기