3/1-3
docker環境上でDjango+react
DockerでDjango・React環境を構築する - Qiita
dockerfileでaxiosを導入したいがうまくはいかない。
手動でreactアプリケーション内でnpm i axios@2.27.2でインストールできる
- axiosの構文
- useEffect内でAPIを取得する
- axios.get("URL").then(res=>setPosts(res.data)
- useEffectの第2引数は[](空)にすることでページ読み込み時に取得する
JavaScriptのFetchメソッドによるAPI取得
- JavaScriptのFetchメソッドの構文
- fetch("https://jsonplaceholder.typicode.com/posts",{method:'GET'})
- .then(res=>res.json()).then(data=>{setPosts(data)})
json形式のデータを表示する
- postsを分解して<li>のキーをidとする
- titleを並べるようにしている
3/1-2
useEffect
最初の一回だけ処理をしたい
特定のstateが変化した時だけデータを処理したい
API処理に使われる
useEffectのタイミング
レンダリングの直後に実行される。
useEffectの構文
- useEffect(()=>{console.log("useEffect invoked")},);
- 第2引数
- 最初に読み込んだ時のみuseEffectを行う
useEffctの第2引数の効果
- []内にuseStateの変数を入れればその変数が切り替わったタイミングでしかuseEffectは起きない
- ex),[count]
- ページ更新のタイミングでは必ずuseEffectが実行される
- 複数の変数に対応させるには?[,]とかく
useEffectのcleanup
- レンダリングが発生した時に継続していたuseEffect内の処理を停止しリスタートする機能?
- useEffectのreturn関数が実行されることにとって実現される?
- useEffectのreturn関数が実行されるのはどのタイミング?
- コンポーネントが消える(アンマウントされる)タイミング
- useEffectのreturn関数が実行されるのはどのタイミング?
3/1-2
useStateでオブジェクト(辞書、ディクショナリ)を使う
formで変更できるようにする
- useStateの初期値で空のディクショナリを定義する
- formタグ内にinputタグで処理する
- 処理
<form>
<input type="text" value={product.name} onChange=
{evt=>setProducts({...product,name:evt.target.value})}/>
<br></br>
<input type="text" value={product.price} onChange=
{evt =>setProducts({...product,price:evt.target.value})}/>
</form>
<h1>Product name is {product.name} </h1>
<h1>Product name is {product.price}</h1>
- value={product.name}
- valueで空のオブジェクトの要素を指定する
-
onChange= {evt=>setProducts()}
- 状態が変更された時次の処理をおこなう
- {...product,price:evt.target.value}
- {product.price}
- productオブジェクトのpriceを呼び出す
3/1-1
UseState
コンポーネントの状態を表すStateを扱うための機能
手順
- src/components/コンポーネントでuseStateをimportする
- useStateを定義する
- useStateで定義した関数を定義する
- stateを使う
- src/components/コンポーネントでuseStateをimportする
- import {useState} from "react";
- useStateを定義する
- const [count,setCount]=useState(0);
- useStateで定義した関数を定義する
- 関数を使用する位置で定義する
- <button onClick={()=>setCount(count+1)}>
- 関数を使用する位置で定義する
- stateを使う
- タグ内で{count}と書いて使う
29-4
props
動的に値を変化させたい時に用いる
手順
- src/App.tsx内のコンポーネントタグにname属性として値を付与
- src/components/コンポーネント内で 引数にpropsを記入
- src/components/コンポーネント return()内で {props.name}をタグ内に記入
ボタンなどのイベント処理
手順
- src/components/コンポーネント内で 関数clickHAndlerを定義
- src/components/コンポーネント return()で <button onClick={clickHandler}>Click</buttun>を記入
- 関数clickHAndlerを定義
- const clickHandler=()=>{
- console.log("clicked"); //処理
- };
- const clickHandler=()=>{
2/29-2
GitHub復習
2.ローカルでリポトリを作る
- 「git init」
3.ステージングする
- 「git add .」
4.コミットする
- 「git commit -m "コメント"」
5.リモートリポジトリを登録する
- 「git remote add origin https://......」
- originという名前で登録された
- 次回からorigin でプッシュできる
6.プッシュする
- 「git push origin master」
- origin(リモートリポジトリ)にmasterブランチをプッシュ
- masterブランチは初期のブランチ
- origin(リモートリポジトリ)にmasterブランチをプッシュ
ブランチを切る
- ブランチを作成
- ブランチを切り替える
- ブランチをプッシュ
1.ブランチを作成
- 「git branch 名前」
2.ブランチを切り替える
- git checkout 名前
3.ブランチをプッシュ
- 「git push origin 名前」
ブランチの作成とブランチの切り替えを同時に行う
- 「git checkout -b 名前」
ブランチの派生元を指定する
- リモートにあるブランチを派生元として新規でブランチを作成する
- 「git branch 新規ブランチ名 派生元ブランチ名」