Next.js
Nextの実行 npm init npm i react react-dom prop-types next@9//学習時バージョン pagesフォルダ を作成
pagesフォルダにインデックスします.作成js(Welcome page) index.js
ページとレイアウト ビットと同じ方法でPagesフォルダにファイルを設定します.js, signup.jsファイルを作成します. コンポーネントフォルダを作成し、フォルダにAppLayoutを配置します.jsファイル(汎用レイアウト全体をキャプチャするためのファイル) を作成します.
AppLayout.js
Link
💎 Nextはreact-routerではなく、Nextに付属のリンクコンポーネントを使用してパスを設定します.
AppLayout.js
コードを固定ルールにまとめるためのパッケージ
インストールeslint
1. eslint
2. eslint-plugin-import
3. eslint-plugin-react
4. eslint-plugin-react-hooks npm i eslint eslint-plugin-import eslint-plugin-reactieslint-plugin-reactit-hooks-D(導入時に不要なパッケージなのでdevDependencesとしてインストール) 182プロジェクト内です.eslintrcファイル の作成
.eslintrc
import React from 'react';
const Home = () => {
return (
<div>
Hello, Next!
</div>
);
};
export default Home;
💎 nextでpagesフォルダを検索し、各ファイルを自動的にpageにルーティングします.ページとレイアウト
AppLayout.js
import React from 'react';
import propTypes from 'prop-types';
const AppLayout = ({ children }) => {
return (
<div>
<div>공통메뉴</div> // 공통으로 들어갈 내용
{ children } // AppLayout 컴포넌트로 감싼 부분이 들어간다.
</div>
);
};
// children으로 들어온 모든 요소를 검사하기위해 propTyes를 사용
AppLayout.propTyes = {
children: propTypes.node.isRequired,
};
export default AppLayout;
index.jsimport React from 'react';
import AppLayout from '../components/Applayout';
const Home = () => {
return (
<AppLayout> // 공통 레이아웃을 적용하기위해 AppLayout 컴포넌트로 감싸준다.
<div>Hello, Next!</div>
</AppLayout>
);
};
export default Home;
リンクとeslintLink
💎 Nextはreact-routerではなく、Nextに付属のリンクコンポーネントを使用してパスを設定します.
AppLayout.js
import React from 'react';
import propTypes from 'prop-types';
import Link from 'next/link';
const AppLayout = ({ children }) => {
return (
<div>
<div>
// Link 컴포넌트 사용
<Link href="/"><a>노드버드</a></Link>
<Link href="/profile"><a>프로필</a></Link>
<Link href="/signup"><a>회원가입</a></Link>
</div>
{ children }
</div>
);
};
AppLayout.propTyes = {
children: propTypes.node.isRequired,
};
export default AppLayout;
eslintコードを固定ルールにまとめるためのパッケージ
インストールeslint
1. eslint
2. eslint-plugin-import
3. eslint-plugin-react
4. eslint-plugin-react-hooks
.eslintrc
{
"parserOptions": {
"ecmaVersion":2022,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"env": {
"browser": true,
"node": true,
"es6": true
},
"extends": [
"eslint:recommended",
"plugin:react/recommended"
],
"plugins": [
"import",
"react-hooks"
],
"rules": {
}
}
Reference
この問題について(Next.js), 我々は、より多くの情報をここで見つけました https://velog.io/@choral/Next.jsテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol