티스토리 뷰
이런 상황이 있을 수 있다.
예를 들어 sample.com이라는 사이트의 상품 리스트 페이지는 sample.com/lists 라고 치자.
근데 리스트 페이지는 어디나 그렇듯 소팅을 해야하고 전체 목록을 보여준다고 해도 ‘전체’ 카테고리가 선택 돼 있을 것이다.
때문에 sample.com/lists?sort=all 등의 파라미터를 설정해야하는데,
sample.com/lists로 파라미터 없이 접속했을 때 에러로 인한 리다이렉트가 아닌 디폴트로 sort=all 등의 파라미터를 설정해줄 수는 없을까?
Nextjs의 장점인 ssr을 사용하면 설정하기 쉽다.
원리는, 서버사이드에서 파라미터를 파싱해서 없으면 해당 파라미터를 가진 url로 리다이렉트 시켜주고 그렇지 않으면 원래대로 넘기는 방식이다.
아래와 같이 설정하면 된다.
export async function getServerSideProps(ctx) {
// url query에서 sort항목의 값을 가져옴
const { sort } = ctx.query;
// 이건 알아서… DATA_API_URL은 임의의 값이다.
const res = await fetch(`DATA_API_URL`);
const data = await res.json();
// sort항목이 없다면,
if (!sort) {
return {
// 있다 치고 리다이렉트 시켜버림
redirect: {
permanent: false,
destination: `/lists?sort=all`,
},
};
// 있으면 있는대로 패치한 데이터만 보내기
} else {
return {
props: { data },
};
}
}
간단한 예시를 들기 위해 이렇게 적었으나
실무에서는 특정상품을 선택하지 않았을 때 디폴트로 리스트 0번째 값의 상품을 보여지게 하는 식으로 많이 쓴다.
반응형
'Basic_Studies > React & Next.js' 카테고리의 다른 글
[Next.js] 클릭 한 후기 자동 스크롤, 포커싱 주기 (0) | 2022.07.18 |
---|---|
[React] svg로 비율 정확한 별점 구현 (0) | 2022.07.13 |
[Next.js] Dynamic title 만들기 (0) | 2022.01.21 |
[REACT] beta.react.org 공식 문서 번역 : [퀵스타트] 리액트 배우기 (0) | 2021.12.10 |
[REACT] beta.react.org 공식 문서 번역 : [퀵스타트] 리액트란? (0) | 2021.12.07 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 글래스모피즘 구현
- 파이썬 flask
- 파이썬 정렬
- 파이썬 크롤링
- 카페음료테스트
- 백준 10989 파이썬
- 리액트 컴포넌트
- dvd 효과
- 자바스크립트
- 10989 파이썬
- 움직이는 글래스모피즘
- next.js 리다이렉트
- bs4 크롤링
- vscode venv
- nuxt 공식문서
- 화이팅
- nextjs 스크롤
- css 글래스모피즘
- react router
- nextjs 파라미터 넘기기
- css marquee
- 리액트 파라미터 넘기기
- 글래스모피즘 애니메이션 구현
- getserversideprops redirect
- NextJS
- Til
- 리액트 스크롤
- 리액트
- nuxt 공식문서 한글
- 리액트 라우터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
글 보관함