トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

reactの勉強【初級】

講座

これ受ける。本当はUI実装だけできればいいからこんなに深くやらなくてもいい気はするけど・・・

www.udemy.com

HTML/CSSもそんなにわからないからこれから受けたほうがいいのかも・・・

www.udemy.com


直近はstorybookを使うからこれを受けてもいいかもだけど、それにもreactの知識がいると書いてある。あとこのコースはUnityBusinessに入っていなかった。

www.udemy.com

環境

codesandboxかStackBlitz。どちらもWebでできる

https://codesandbox.io/

無料プランに制限が入ったからStackBlitzのほうがおすすめらしい

StackBlitz

stackblitz.com

見た目めっちゃ似てる。どちらもアカウントログイン必要。

最初はStackBlitz使ってたけど、codesandboxのほうが補完とかいいし、動画と同じなのでわかりやすい

 

この講座には関係ないけど、AntDesignのドキュメントのサンプルに貼ってあるリンクがStackblitzとかcodesandboxだった。

メモ

JavaScriptはWebでは絶対使う。アプリもサーバーサイドもできて幅が広い

 

NPM→npm or yarn→package.json

node_modules内に実際のファイルが入る。Githubにあげない

依存関係はpackage-lock.json or yarn.lockに自動で書かれる。

 

ES2015 javascriptの標準規格。毎年出る

UnityのPackageManagerみたいな感じか~

 

モジュールバンドラー webpackやviteなど

本番用にビルドするときいろいろなファイルを一つにまとめる

 

トランスパイラ BABEL SWC

新しいjavascriptの記法が動かないブラウザがある。新しい記法で書いて実行するときは古い記法に変えてくれる。

 

SPA

htmlファイル(URLにあたるもの)は一つ。そのページ内でjavascriptで内容を書き換えてページの遷移などを表現する。

(ブロガー的にはページ分かれててくれたほうが嬉しいが)

 

記法

var let const

オブジェクトや配列はconstでも中身変更可能。

constを使うことが多い

アロー関数 const func3(引数) => {};

テンプレート文字列 '私の名前は${name}です'

分割代入 const {name,age}=myprofiel

 

関数に引数を入れないとundefinedと表示される。デフォルトを設定しておける

const sayHello = (name = "ゲスト") =>{~~}

 

Javascriptは省略したがり

 

arr8 = arr4はarr4を参照してしまうのでよくない。arr8への操作がarr4にも反映されてしまう

arr8 = [...arr4]・・・配列はスプレッド構文でコピーしよう

 

map関数でfor文が簡単に書ける

 

三項演算子

1>0 ? "trueです" : "falseです"

 

truethy falsy

typescriptbook.jp

|| は左側がtruethyの時にその時点で返却する

&& は左側がfalsyの時にその時点で返却する

JavascriptでTODOアプリ作成

html,css,jsを使ってWebアプリ生成

私はcss何もわかっていないということがわかった。

今回jsでやっていることはもともとhtmlでもできたこと?

コードを書く部分はもうAIがやってくれるだろうということで自分で書いたりはせずコピペしたり見てるだけにしたりした。AI時代の勉強方法難しい

 

あと今回おすすめって言っていたStackBlitzを使ったけど、補完とかエラー表示とかされない・・・codesandboxのほうがよさそう。

プロジェクト数制限あるらしいけど、上限来たら消したらいいし

次のreactでも解説と構造が違いすぎてStackBlitzじゃ厳しかったのでcodesandboxにした。codesandboxめっちゃ補完してくれる。神か?未来が見えてるの?みんながこのコースやってるからエディタが学習してる?

reactでTODOアプリ

reactのv18で大きく変わった

ここ一式

import { createRoot } from "react-dom/client";
const rootElement = document.getElementById("root");
const root = createRoot(rootElement);

 

<StrictMode>を使うとreactのルールについて厳しく怒ってくれる

 

コンポーネントは大文字から始める App

returnは一つの大きなタグで囲む

<>

</>

は<React.Fragment>の省略!

AntDesign触りながら、これなんなんだと思ってたからすっきり。

 

exportってC#でいうpublicみたいな感じか?

コンポーネントしかないjsは拡張子をjsxにするとわかりやすい

3chome.net

{}でくくっている中身はjavascript

<h1 style={{ color: "red" }}>やあ!</h1>

文字列なのかわからないので""でくくる

ここら辺からわからなくなってきた。結局Reactってなに・・・

reactとjsとhtmlとcssの関係がわからない

ChatGPTに聞いた

cssをreactでjavascript内で書くときはfont-sizeなどの形式を許可していないので、fontSizeと書く

props state

<StrictMode>でかつ開発時はすべてのコンポーネントが2回レンダリングされる

useEffect 配列に入れたもの 処理の関心の切り分け ???

useEffectはむやみやたらに使わない。

 

default export named export

default exportを読み込むときは{}いらない。importするときの名前も自由

 

<button onClick={onClickDelete(index)}>削除</button>とすると{}の中が常に呼ばれる。

<button onClick={() => onClickDelete(index)}>削除</button>