Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 페이스북
- node.js
- ios
- 웹뷰
- Android
- https
- S3
- NeXT
- 네이티브
- Route53
- fanzeel
- JavaScript
- Elastic Beanstalk
- 안드로이드
- TypeScript
- AWS
- 알려줌
- 감사일기
- node
- 카카오톡
- nextjs
- hybrid
- angular
- swift
- angular4
- php
- cors
- react
- 도메인
- beanstalk
Archives
- Today
- Total
쪼렙 as! 풀스택
React - Next.js 에서 공통 레이아웃 _app.js 사용하기. 본문
헤더나 푸터와 같이, 프로젝트에 전체에서 공동으로 쓰이는 레이아웃들이 있을 것이다.
실제 프로젝트를 진행하다보면, 헤더, 푸터뿐 아니라, 여러가지 도구들 (전체를 감싸는 로딩 block 이라던지, Alert Modal 이라던지)을 공통으로 쓸 텐데, 이것들은 앱이 최초 한번만 로드되길 바란다.
create-react-app 으로 프로젝트를 만들면, 당연히 App 컴포넌트에 한번 정의해놓으면 될것이고,
Next.js 프로젝트를 한다면
_app.js 를 사용하면 되겠다.
뿐만아니라, 전체 페이지의 getInitialProps 를 후킹할 수 도 있다.
/pages/_app.js
import React from 'react'
import App, { Container } from 'next/app'
import {Header, Footer} from '../comps/CommonComps';
export default class MyApp extends App {
constructor(props){
super(props)
console.warn("마이앱의 컨스트럭터.", props)
}
componentDidMount() {
console.warn("마이앱의 컴포넌트 디드 마운트.")
}
static async getInitialProps({ Component, router, ctx }) {
console.warn("마이앱의 겟 이니셜.", router)
let pageProps = {}
if (Component.getInitialProps) {
pageProps = await Component.getInitialProps(ctx)
}
console.warn("받은 props.", pageProps)
return { pageProps }
}
render () {
const { Component, pageProps } = this.props
return (
<Container>
<Header /> // 공통된 레이아웃을 여기다 넣을 수 있다. 헤더라던지...
<Component {...pageProps} />
<Footer /> // 공통된 레이아웃을 여기다 넣을 수 있다. 푸터라던지...
</Container>
)
}
}
'개발 일지 > Web & Server' 카테고리의 다른 글
javascript, Body 위에 Modal 상태를 만들기. (0) | 2018.11.14 |
---|---|
2018.11.01. AWS - BeansTalk 에 Node 서버 배포할때, 알맞는 포트 찾기. (0) | 2018.11.01 |
javascript, 브라우저가 android, iphone, ios 스마트폰인지 알아오기. (0) | 2018.10.11 |
18.10.05 리액트로 smooth scroll 되는 슬라이더 만들기. (0) | 2018.10.05 |
Nexjs 에서 구글 애널리틱스 사용하기. (0) | 2018.09.06 |
Comments