ヘッダーロゴ

【ページネーション編】Notion の記事でブログサイト作成

2022-02-13

React

Next.js

TypeScript

Tailwind CSS

Notion

API

hero画像

ヒントにした資料

https://egghead.io/lessons/next-js-request-paginated-data-from-notion-api-with-next-js

はじめに

今回はページネーションについて深堀りしていきたいと思います。

  • 完成形(ゴールイメージ)の共有
  • 前回から使用しているベースコードで実装をしてみる(テスト用のデータベース使用)
  • ページ内のは100個までしか取得できないのか確認する
  • 100個までが確認とれたら、100単位でページネーションをページ内に設置してみる

解決したい問題

Notion の1つの記事が長くなるとブログサイトでは全てが反映されない問題を解決したい。

原因としては、Notion のAPI の取得上限が100個までであること。これは1回の取得制限が100までなのか、それとも表示上限が100までなのか?この違いで getStaticsProps の抽出条件が変わってくるのではないか??

ポイントになりそうな技術

  • while 文
  • スプレッド構文 ...

ページネーションの実装

  • 1ページに表示する上限を決定する
  • 上限決定後、全体の要素数を割る(全体の要素数 ÷ 上限数)ことで、必要なページネーション数が求められる

created by

片山 真介

フッター画像
Twitter画像Facebook画像

© Shinsuke Katayama