を作成し、次のダイナミックなウェブサイトを展開します.js
Next.js 生産グレードの反応アプリケーションとウェブサイトスケールを開発するためのフレームワークです.
このチュートリアルでは、次を作成します.からのNBAチームに関するデータを取り入れるJSウェブサイトSportsDB API .
私たちは走り始める
一度終了
開ける
きれいな出発点で、我々はNBAですべてのチームのリストを返すAPI要求をします:
私たちはパスすることができます
次に、個々のチームページを作成します.
ページフォルダ内で
今、我々はホームページを個々のチームページにリンクするハイパーリンクを加える必要があります.
再オープン
場所でデータを今すぐ私たちのウェブサイトにいくつかの基本的なCSSを与える.
アプリケーションは既に読み込み中です
個々のチームページでは、コンテンツを配置し、最大幅を制限します.
現在
これらの追加からデータを読み込むことによってさらに拡張することができますSportsDB endpoints .
だってね.JSは作成され、Vercelによって維持され、彼らは次の展開に簡単になります.JSアプリケーション.
無料アカウントの作成https://vercel.com/signup 次に次のコマンドを実行します.
一度実行ラン
Vercelに配備される完成したウェブサイトは、ここにありますhttps://nbateams.vercel.app/ .
このチュートリアルでは、次を作成します.からのNBAチームに関するデータを取り入れるJSウェブサイトSportsDB API .
次を作成します。JSプロジェクト
私たちは走り始める
npx create-next-app
最も簡単な方法は、次から始まります.js一度終了
run npm run dev
とローカルサーバがhttp://localhost:3000 が開始されます.ホームページ
開ける
pages/index.js
ファイルとすべてのプレースホルダのコードを削除します.きれいな出発点で、我々はNBAですべてのチームのリストを返すAPI要求をします:
const endpoint = "https://www.thesportsdb.com/api/v1/json/1/search_all_teams.php?l=nba";
export async function getServerSideProps() {
const res = await fetch(endpoint);
const data = await res.json();
return {
props: {
data,
},
};
}
次.JSは、それぞれのリクエストによって返されるデータを使用してこのページをプレレンダリングしますgetServerSideProps
.私たちはパスすることができます
data
にHome()
チーム名とロゴを出力する関数export default function Home({ data }) {
const { teams = [] } = data;
return (
<div className="teams">
{teams.map((team) => {
const { idTeam, strTeam, strTeamBadge } = team;
return (
<div key={idTeam}>
<img src={strTeamBadge} width="100" />
<p>{strTeam}</p>
</div>
);
})}
</div>
);
}
チームページ
次に、個々のチームページを作成します.
ページフォルダ内で
team
フォルダと[name]
サブフォルダとindex.js
ファイル|- pages
|- team
|- [name]
- index.js
[name]
提供するdynamic route それで、URLを通してチーム名を渡すことができます./team/Brooklyn%20Nets
インteam/[name]/index.js
チーム名のAPIを検索するには、次の項目を追加します.const endpoint = "https://www.thesportsdb.com/api/v1/json/1/searchteams.php?t=";
export async function getServerSideProps({ query }) {
const { name } = query;
const res = await fetch(`${endpoint}${name}`);
const data = await res.json();
return {
props: {
data,
},
};
}
ホームページと同様に、データを取得し、Aを作成してページに出力しますTeam()
機能export default function Team({ data }) {
console.log(data);
const {
strTeam,
strStadium,
strStadiumThumb,
strFacebook,
strInstagram,
strTwitter,
} = data.teams[0];
return (
<div className="team">
<h1>{strTeam}</h1>
<h3>Stadium</h3>
<p>{strStadium}</p>
<img src={strStadiumThumb} width="400" />
<h3>Social</h3>
<ul>
<li><a href={strFacebook}>Facebook</a></li>
<li><a href={strInstagram}>Instagram</a></li>
<li><a href={strTwitter}>Twitter</a></li>
</ul>
</div>
);
}
これは、このチュートリアルのための十分なデータが、あなたがconsole.log
あなたが利用可能なデータの完全なセットが表示されます.ホームページへのホームページのリンク
今、我々はホームページを個々のチームページにリンクするハイパーリンクを加える必要があります.
再オープン
pages/index.js
そして、次をインポートします.jsLink
最初の行に以下を追加します.import Link from "next/link";
エディットreturn
チーム名をクエリ文字列として使用してチームページにリンクするコンポーネントを含めるには、次の手順に従います.return (
<span key={idTeam}>
<Link href="/team/[name]" as={`/team/${strTeam}`}>
<a>
<img src={strTeamBadge} width="100" />
<p>{strTeam}</p>
</a>
</Link>
</span>
);
スタイリングの追加
場所でデータを今すぐ私たちのウェブサイトにいくつかの基本的なCSSを与える.
アプリケーションは既に読み込み中です
global.css
CSSを追加しましょう..teams {
padding: 5%;
text-align: center;
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
grid-gap: 1rem;
}
これは、ホームページ上のチームのロゴの応答グリッドレイアウトを作成します.個々のチームページでは、コンテンツを配置し、最大幅を制限します.
.team {
max-width: 400px;
margin: auto;
}
.team img {
max-width: 100%;
display: block;
}
.team ul {
padding-left: 1rem;
}
タグの追加
現在
<title>
タグが存在しないので、次のインポートできます.jsHead
コンポーネントの上部にindex.js
:import Head from "next/head";
を返します.<div>
titleタグ付き:...
<div className="teams">
<Head>
<title>NBA Teams</title>
</Head>
{teams.map((team) => {
...
これで、チームを選択し、それらについてのいくつかの基本的な情報を得ることができるウェブサイトがあります.これらの追加からデータを読み込むことによってさらに拡張することができますSportsDB endpoints .
Vercelへの配備
だってね.JSは作成され、Vercelによって維持され、彼らは次の展開に簡単になります.JSアプリケーション.
無料アカウントの作成https://vercel.com/signup 次に次のコマンドを実行します.
npm i -g vercel
では、vercel
コマンドとあなたのメールアドレスを確認するよう求められます.一度実行ラン
vercel
再度、サイトを展開してVercelサブドメインにプロンプトに従ってください.Vercelに配備される完成したウェブサイトは、ここにありますhttps://nbateams.vercel.app/ .
Reference
この問題について(を作成し、次のダイナミックなウェブサイトを展開します.js), 我々は、より多くの情報をここで見つけました https://dev.to/michaelburrows/create-and-deploy-a-dynamic-website-with-next-js-ciテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol