仕事でたまにReactを触るんだけど、正直周りのコードを見ながら雰囲気で書いているので、たとえば1からProduction用にフロントやってくれって言われたら声が出なくなって灰になって死ぬ。
そんな遠くないうちに自分でWebサービスを作ったり、仕事でSPAもAPIもガッと作るときが来るだろう、ということで最近は色々調べたりし始めた。
今はReduxについて調べたり、Code Sandboxで眺めてみたり、自分で書いたりしているところなんだけど、自分で書く時に露骨に手が止まるのをどうにかしたい。
ボイラープレートみたいなの欲しい。のでそのうち作りたい
軽くReduxについて(だいたい)理解した概念をまとめておく してないのもある
そもそもReduxって何
ReactをView専用として使って、Storeっていう概念を中心に状態を管理する仕組み。狭義は reduxjs/redux 。
ReactにはHOCで値を流し込むと、それを元にReactが描画してくれるようにつくる。
ReactのStateの使いどころ
Redux 使うとき React state使わないのかな、コンポーネント内でしか使わないstateがあったらReact state使うよね多分
— はぜ (@haze_it_ac) February 3, 2019
— はぜ (@haze_it_ac) February 3, 2019
Reactにも元々Stateっていう状態管理用の仕組みがあって、それをどう使い分けるかについて。
ツイートに書いてある通りなんだけど、コンポーネントを越えるStateはReduxのStoreに入れて、コンポーネント内で完結するStateはReact Storeを使う。
実際のところ、コンポーネント1つだけで完結するような状態はそんなにない(と思う)から殆どはStoreに入ることになる
ツイートのリブセンスさんところのエントリがめっちゃわかりやすくて良い
Actionとかdispatchとか
jimbo先生のスライドを見ればなんとなくわかる 気がする。 勝手に引用してすみません
だいたいActionがだるくなってくるから、repatchを使ったり、Typescript-fsaを使ったりするっぽい。
どうやって書くかはわからん
Functional Conponent
元々SFCって言われていたやつ。
状態を持たないコンポーネントをシュッとかけるっぽい。
状態を持たない=Functionalだし普通に関数で書けばよくね???という発想。なんか難しそうに聞こえるけどただの関数なので大したことはない
ただ、状態を持つFCがあったりHooksがあったりしてその辺は謎。だれか教えてくれ
APIからデータをどう取ってくるか とか
“reduxで非同期処理をするいくつかの方法(redux-thunk、redux-saga) - Qiita” (1 user) https://t.co/uhlE4cYE5J
— はぜ (@haze_it_ac) February 3, 2019
7件のコメント https://t.co/rD4xIjb8Sa “redux-thunkなのかredux-promiseなのかredux-sagaなのか、それともredux#bindActionCreatorsをやめるのか - Qiita” (57 users) https://t.co/t5mSOF5G7R
— はぜ (@haze_it_ac) February 3, 2019
なんか色々やり方があって謎
耳にするのは thunk, saga, promise 辺り。今ここで困っている。
外部へのHTTP通信を含んだReactのライフサイクル周りをイメージでいないから、多分非同期処理以前にReactちゃんとわかってないんだと思うけど
それっぽいsampleはcode sandboxにあったけどまだちゃんと理解してない
redux + axios + saga のsample見つけた、明日これ読もう / 1件のコメント https://t.co/1nrMKaiGUH “k9nmy7o3p3 - CodeSandbox” (1 user) https://t.co/Gk4ROLVjkK
— はぜ (@haze_it_ac) February 2, 2019
他
最初みたときポインタか????って思ったけど違うっぽい5件のコメント https://t.co/pXtBZ6OuH1* “function* | MDN” (9 users) https://t.co/hfrL8aYA7n
— はぜ (@haze_it_ac) February 2, 2019
なんか説明が難しいけど、だいたい他言語のProcとかyieldを使ったやつと同じ。多分
TypeScript
ドキュメントを読もう
日本語版のTypeScript-Handbookもある。 今知った
VS Code使っていればTypeScriptにしたほうが色んなとこに飛べるようになって便利。ただJavascriptのコードをコピーして手を抜こうとすると色んなところで型がないぞって怒られてつらくなる
とりあえずコード書いたり写経したりして概念を掴んでいきたい。
ところでみんな最初どうやって理解してるの???ドキュメント全部読んでなるほど〜〜って言って自分で一から書けるのかな。
自分は参考になるコードを丸コピしてそれを継ぎ足ししながら少しずつ概念を覚えていくほうが楽で良いんだけど、なんか色々調べても丸っと使えるのはなくてだめっぽい。自分でなんか作れという話ではある
providerとかconnnetのこと書くの忘れてた まあいいか
— はぜ (@haze_it_ac) 2019年2月4日
とりあえずContext APIとReduxのProviderの記述似過ぎでコード眺めてるとどっちがどっちかよくわからないことが多くて雰囲気なのがよくわかってつらいっていうのはある
— はぜ (@haze_it_ac) 2019年2月4日