8
3

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 1 year has passed since last update.

[Next.js] 最速でNext.jsを動かす

Last updated at Posted at 2021-09-09

注意

現在はNext13がリリースされており、構造が12までと異なります。
詳しくは公式ドキュメントを参照お願いします。

最速でNext.jsを動かす

基本はNextチュートリアル公式を圧縮して書いています。
 
Node公式サイトからNode.jsを端末にインストールする
Node.js 10.13 or 最新バージョン

$ npx create-next-app
? What is your project named? › next-app

$ cd next-app
$ npm run dev

※プロジェクト名は任意の名称に
サーバーを立ち上げたら http://localhost:3000/ にアクセス

編集してみよう

pages/index.js開いて<h1>内をHello Next.js!と編集
保存するとリアルタイムにタイトルが変更される
ここまででNext.jsのアプリが動かせる

ページルーティング

まずリンクをつける方法

モジュールを利用したいコンポーネントファイルに読み込み

import Link from 'next/link';
<Link href="/posts/first-post">
    <a>Link</a>
</Link>

ここで開発ツールで見ると

<a href="/posts/first-post">Link</a>で書き出されている

Linkの中にaタグを入れる理由

  • <Link href="">: クライアントサイドで遷移させるため
  • <a>: SEO対策 aタグだとBotに理解してもらうため(hrefは不要)

Next.js ではなぜ Link の中にaを入れる?なぜhrefをLinkに付ける??

ページ追加

/pages/posts/first-post.js追加

import Link from 'next/link';

const FirstPost = () => {
  return (
    <>
        <h1>First Post</h1>
        <h2>
            <Link href="/">
            <a>Back to home</a>
            </Link>
        </h2>
    </>
  );
}

export default FirstPost;

React.Fragmentタグについて

return (
    <> {/* <React.Fragment>...</React.Fragment> */}
        React.Fragmentの省略形
        return内では必ず1個のタグでラップしなければならずdivでくくると
        構造上余計セレクタが含まれてしまうため
        HTMLには反映されないタグが用意されている
    </>
);
8
3
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
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?