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
- AWS
- beanstalk
- angular
- 카카오톡
- Route53
- 도메인
- 페이스북
- Android
- nextjs
- cors
- JavaScript
- 네이티브
- Elastic Beanstalk
- 웹뷰
- hybrid
- NeXT
- https
- 알려줌
- node.js
- ios
- react
- TypeScript
- fanzeel
- node
- S3
- 감사일기
- angular4
- php
- swift
- 안드로이드
Archives
- Today
- Total
쪼렙 as! 풀스택
Next.js - next/dynamic 이용해서, 특정 컴포넌트 SSR 안하고, 클라이언트에서만 렌더링하기. 본문
개발 일지/Web & Server
Next.js - next/dynamic 이용해서, 특정 컴포넌트 SSR 안하고, 클라이언트에서만 렌더링하기.
코코앱 2018. 7. 18. 11:09Next.js 를 이용해서 서버사이드 렌더링을 하고 있다.
Next.js 에서는 최초에 한번 서버사이드에서 렌더링해서 내보내 주고,
그 이후는 클라이언트에서만 라우팅을하며 렌더링 해주는 방식으로,
SSR 과, SPA(CSR) 의 장점을 매우매우 훌륭하게 조합하여 구현해준다.
그런데 간혹, 특정 Component 에 한해서, 서버사이드에서는 렌더링 하지 않았으면 하는 마음이 있다.
그 '특정 컴포넌트' 라 함은, 특별히 SSR 이 중요하지도 않은데, 매우 무거워서, 최초 로딩 performance 에 악영향을 미치는 경우라 할 수 있겠다.
Next.js 에서 3.0부터 제공하는 'dynamic' 기능을 이용해서, 이런 문제를 해결할 수 있다.
import dynamic from 'next/dynamic'
const HeavyComponent = dynamic(
import('../components/HeavyComponent'), {
loading: () => (<div>서버사이드에서 대체되는 영역</div>),
ssr: false,
},
);
이렇게 해두면,
서버사이드에서 렌더링을 하다가, HeavyComponent 를 만나면,
<div>서버사이드에서 대체되는 영역</div>
요렇게 지정해둔 컴포넌트로 대체해서 렌더링해서, 응답을 내려준 후,
클라이언트 단에서 자동으로 원래 컴포넌트였던 HeavyComponent 를 렌더링 해 주는 것이다.
단,
임시로 대체되는 Component와, 실제로 클라이언트단에서 보여지는 Component 가 확연하게 다르게 보일 경우,
SPA 의 단점인 '깜빡임 현상' 을 볼 수 도 있으니, 상황에 따라, 잘 대체해줘야 할것이다.
'개발 일지 > Web & Server' 카테고리의 다른 글
Angular - img src = local에 있는 blob 주소를 이용하여 img 태그 보여주기. (0) | 2018.07.30 |
---|---|
문자열 클립보드에 복사하기. (0) | 2018.07.25 |
Next.js - Router.push() 로, 라우팅 이동 후, 맨 위로 스크롤 (0) | 2018.07.05 |
Javascript - File 로부터 blobURL 가져오기 (0) | 2018.06.29 |
18.06.12 Javascript - Promise 객체 다루기. (0) | 2018.06.12 |
Comments