5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

React入門 - Part2 - Next.jsを使ってページ遷移を行う

Last updated at Posted at 2021-04-13

#目次
React入門 - 目次

Next.jsの概要

Next.js(ねくすとじぇーえす)とは、Reactの機能を拡張するためのJavaScriptフレームワークです。Next.jsを使用することで、サーバ側でページを生成するサーバサイドレンダリング(SSR)ができるようになります。サーバサイドレンダリングを行い、クライアント側のページ生成処理を減らすことで、より高速なウェブページの表示が可能になります。
※ここからの抜粋

Next.jsはサーバーサイドレンダリング(SSR)やファイルベースルーティングなど多くの機能をゼロコンフィグで提供してくれます。
※ここからの抜粋

Next.jsを設定する

ここの「セットアップ」から「もう一度yarn devを実行すると・・・」まででOKです。

纏めます。

Git Bash等でプロジェクトを作成したいディレクトリに移動して以下を実行します。

npx create-next-app プロジェクト名
cd プロジェクト名

tsconfigを配置するために、以下のコマンドを実行します。
※VsCodeのターミナルからは実行できなかったので、Git Bashでプロジェクトに移動してから実行しました。

touch tsconfig.json

yarn devを実行しますが以下のようにエラーになります。
image.png

何かが足りないので「yarn add・・・」を実行しなさいということなので、それに従い以下を実行します。

yarn add --dev typescript @types/react

再度、以下を実行します。

yarn dev

ブラウザで以下にアクセスする

http://localhost:3000

以下の画面になります。

image.png

Next.jsでのページ遷移の概要

Next.jsはpages/ディレクトリに置いたフォルダ/ファイルの構成に従って、HTMLを生成してページ遷移を実現します。ルーティングライブラリは不要で、URLの構造に合わせてjs(ts,tsx)ファイルを配置するだけです。

以下の例ではindex.tsxが/、hoge.tsxが/hogeに対応付けられます。

--pages
    |--index.tsx -> /
    |--hoge.tsx -> /hoge
    |--fuga.tsx -> /fuga
    |--404.tsx
    |--_app.tsx -> アプリケーションエントリーポイント
    |--_document.tsx -> HTMLドキュメント構造記述用

Next.jsでページ遷移を試してみる

pages配下にpage1.tsxを作成します。

import Router from 'next/router';
import React from 'react';

export const Page1: React.FC = () => {

    /** ページ遷移クリックイベント */
    const onNextPageClick = () => {
        Router.push('/page2');
    }

    /** レンダー部分 */
    return (
        <>
          <span>ここはページ1です</span>
          <button onClick={onNextPageClick}>Page2に遷移します</button>
        </>
    )
}

export default Page1;

page2.tsxも作成します。

import Router from 'next/router';
import React from 'react';

export const Page2: React.FC = () => {

    /** ページ遷移クリックイベント */
    const onNextPageClick = () => {
        Router.push('/page1');
    }

    /** レンダー部分 */
    return (
        <>
          <span>ここはページ2です</span>
          <button onClick={onNextPageClick}>Page1に遷移します</button>
        </>
    )
}

export default Page2;

作成したら、

yarn dev

を実行し、

http://localhost:3000/page1

にアクセスし動作確認を行いましょう。

React.FCやexport defaultなど謎なコードが存在しますが、
今のところは、呪文だと思って雰囲気をとらえておきましょう。

遷移部分の実装は、

Router.push('/page1');

ですね。

以上

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?