自分用のメモ
Contents
環境の準備
実行環境
- VS code:v1.62.3
- Node.js:v14.17.3
- React:v17.0.2
プロジェクトの作成
Next Create Appで作成します。
ソースの作成
JSONデータの用意(publicフォルダ配下に配置)
{
"message" : "This is sample JSON data.",
"data": [
{"name":"taro", "mail":"taro@yamada", "age":39},
{"name":"hanako", "mail":"hanako@yamada", "age":28},
{"name":"sachiko", "mail":"sachiko@yamada", "age":17}
]
}
初期ページの作成
- 7行目でfetchした「res」を8行目で「res.json()」してJSON形式の文字列に変換します。
- 8行目の戻り値「jsonData」を9行目でStateに保存します。
import {useState} from 'react'
import Layout from './components/layout'
const Home = () => {
const url = './data.json'
const [payload, setPayload] = useState({message:'', data:[]})
fetch(url)
.then(res => res.json())
.then(jsonData => setPayload(jsonData))
return (
<div>
<Layout title='Top page.'>
<div className='alert alert-primary text-center'>
<h5 className='mb-4'>{payload.message}</h5>
<table className='table bg-white'>
<thead className='table-dark'>
<tr><th>Name</th><th>Mail</th><th>Age</th></tr>
</thead>
<tbody>
{payload.data.map((value, key) =>
<tr key={key}>
<th>{value.name}</th>
<th>{value.mail}</th>
<th>{value.age}</th>
</tr>
)}
</tbody>
</table>
</div>
</Layout>
</div>
)
}
export default Home
レイアウトの作成
- Layoutコンポーネントについては、こちらの記事を参考にしてください。
あとがき
特になし
コメントを残す