ReactをCDNで読み込み、外部JSONファイルをAjaxで取得してみた
2023/12/15 (金) - 00:00 JavaScript
ReactのJSファイルをCDNを使って読み込み、さらにReactを使って外部のJSONをAjaxで取得し、ブラウザ画面に表示させるJavaScriptのサンプルを作成しました。
サンプルのコード
JavaScriptの準備。CDNを使ってReact本体を呼び出します。
<script src="https://unpkg.com/react@16.14.0/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16.14.0/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/babel-standalone@6.26.0/babel.min.js"></script>
コンテナの準備。HTMLの任意の場所にReactを描写させるDOM要素を準備しておきます。
<div id="app"></div>
今回使うJSONファイルです。例としてno
、name
、weapon
の値を持っているものとします。
{
"Party": [
{ "no": 1,"name": "マリオ", "weapon": "ひまんパタこうら" },
{ "no": 2,"name": "マロ", "weapon": "ソニックシンバル" },
{ "no": 3,"name": "ジーノ", "weapon": "スターガン" },
{ "no": 4,"name": "クッパ", "weapon": "ドリルクロー" },
{ "no": 5,"name": "ピーチ姫", "weapon": "フライパン" }
]
}
以下は実行コードになります。PARTYというReactコンポーネントを作成し、ajaxで外部のJSONファイルにアクセス。名前(name)と武器名(weapon)を取得してJSXでブラウザ画面上に描写させます。
class PARTY extends React.Component {
constructor(props) {
super(props);
this.state ={
status: null,
party: []
}
}
componentDidMount(){
//JSONのファイル名
fetch("party.json")
.then(res => res.json())
.then(
(data) => {
this.setState({
status: 'success',
party: data.Party
});
},
(error) => {
this.setState({
status: 'error'
});
}
)
}
render() {
if (this.state.status === 'success') {
let partys = this.state.party.map((party) => { return <li key={party.no}>名前:{party.name} 武器:{party.weapon}</li>});
return <ul>{partys}</ul>
}else if(this.state.status === 'error') {
return <p>エラーです</p>
}else{
return <p>読み込み中</p>
}
}
}
ReactDOM.render(<PARTY />,document.getElementById('app'));
JSXとは、Reactでよく使われる仕組みでJavaScriptのコードの中にXMLのようなマークアップのコードを記述するものです。
実行結果
名前と武器がリストで表示されます。
<ul>
<li>名前:マリオ 武器:ひまんパタこうら</li>
<li>名前:マロ 武器:ソニックシンバル</li>
<li>名前:ジーノ 武器:スターガン</li>
<li>名前:クッパ 武器:ドリルクロー</li>
<li>名前:ピーチ姫 武器:フライパン</li>
</ul>
「フィクションです。じっさいの人物には、いっさい関係ありません。」以上。
おしまい♥
タグ:React
おすすめ記事
- Next.js13のApp Routerで404ページ作成&静的エクスポート
- 電話番号リンク(tel:〜)をスマホではクリッカブルにしパソコンではリンク無効にする
- PHPとGASを使ってフォームの内容をGoogleスプレッドシートに書き込む
- Next.js App Routerによるhead要素内の設定(meta OGPとかfavicon)
- Reactでinput要素に入力した内容を反映
トラックバック & ピンバック
- この記事へのトラックバックURI:
- https://weblog.walk-life.me/react_ajax_json/trackback/