React と React Native のスレ (481レス)
1-

86: 2021/02/15(月)02:51 ID:E7fw/gtI(1) AAS
マジで障害者かな?
この板に巣食ってる人がいるのは認識してたけど
87: 2021/06/18(金)09:52 ID:IQL7BQ/N(1) AAS
React Hooks + Reduxの利点を述べた記事をいくつか読んだのですが、
MVCでだめな理由がよくわかりませんでした。

複数のModelがReduxのStoreに一本化される: Modelをシングルトンにして、
Storeの内部で区分するところをModelのメンバとして区分する。

ViewからはActionを発行してReducerを通さないとStoreを更新できない:
ViewはControllerに登録されたメソッドを通してしかModelを更新できない。

Storeの更新はViewに自動的に反映される。
Model(とそのメンバ、孫メンバ)がObservableであれば、Modelの更新を
自動的にViewに反映させることができる。

ではだめなんでしょうか。
88
(1): 2021/08/10(火)10:10 ID:0SSgF6Zh(1/5) AAS
Reactで関数コンポーネントで本気実装始めたんだが、
関数コンポーネント面倒くさ過ぎじゃね?

関数コンポネント入門位の実装なら問題なかったんだが、
ちょっと込み入ったの実装しようと思ったら
クラスじゃないんで、コンポーネントの自前メソッドを(子から親、親から子)公開するのとか
そのTS型定義をどうするのとかうまく解決できんのか?これwww
89
(1): 2021/08/10(火)10:18 ID:Yti8n+JL(1) AAS
込み入った実装ってだいたい設計から間違ってるよね…
90: 2021/08/10(火)10:22 ID:0SSgF6Zh(2/5) AAS
>>89
あんたが考えてんの具体的にどのレベルだ?
こっちはネイティブアプリ同等の、ガントチャート状のスケジューラーの実装なんだが
コンポーネント間のメソッド呼び出しは結構多いぞ
91
(1): 2021/08/10(火)11:17 ID:x9cqqxVb(1) AAS
奇遇だな、Webとネイティブ両用のスケジュール管理系やってるよ
推測だけどコンポーネントとデータ構造(いわゆるモデル)が分離できてないんだろうと思うわ
同じものをネイティブでも作ることを仮定して共有できるところ(モデル)とできないところ(レンダリング)にわけて考えてみるといんじゃね
92: 2021/08/10(火)11:27 ID:0SSgF6Zh(3/5) AAS
>>91
!!
まだReact不慣れで困ってる
半年前にReact初めてそちはクラスベース(TS)だったので、
実装できない事は無かったのでこういった苦労はなかった

>>コンポーネントとデータ構造(いわゆるモデル)が分離できてないんだろうと思うわ

どうだろう?
あんまり業務的なことを書くわけにはいかんけど、
親パネル側から、配置されたコンポーネントの機能を呼び出したいんだが、
コンポーネントが今回クラスから関数に変わったんで、
コンポーネント側にコンポーネント固有の機能(クラスん時はメソッド)が実装しずらくなって困ってる

関数コンポーネントだとここにメソッドとか置かないもんなの?
93: 2021/08/10(火)12:03 ID:0SSgF6Zh(4/5) AAS
関数なんだから、オブジェクト指向的な実装はムリなんだろうな
とりあえず、

・クラス → モジュール
・プロパティ → モジュールの関数の引数
・メソッド → モジュールの関数

に置き換えて実装してみるわ
94: 2021/08/10(火)12:28 ID:dmkhwQTT(1) AAS
関数であれクラスであれ(つかもっと前から)Reactのコンポーネントは渡されたデータ(Props)をただベタッとレンダリングするだけってのがコンセプト
その超基本的なところをわかってなさそう
他の言語やフレームーワークの考え方のままReact始めたのか知らんけどそれをReactに置き換えるよりReact流の考え方を身につけたほうがいいと思うわ
95
(1): 2021/08/10(火)12:36 ID:0SSgF6Zh(5/5) AAS
いや、アトミックデザイン的に機能分割して
その単位をオブジェクト指向的にデザインしてたわー−(前回プロジェクト)

でもRender()しかやらん関数と、
その外にはみ出た処理で細切れ関数だらけになって、
コード読みにくいは、実装も美しくならんわー− ( ノД`)ドスル
96: 2021/08/10(火)14:00 ID:8kvO2lBn(1) AAS
Redux素晴らしいって言ってた人たちは今息してんのかな
97
(1): 2021/08/10(火)14:08 ID:UtkECLI3(1/3) AAS
>>95
この流れでアトミックデザインを出してくるのものすっごく薄っぺらい
98
(1): 2021/08/10(火)14:15 ID:i+IrTlV6(1) AAS
>>97
アトミックデザイン使わず
あなたが表現してあげたら?
99
(1): 2021/08/10(火)14:57 ID:UtkECLI3(2/3) AAS
>>98
単純にいらんやろ
「コンポーネントをオブジェクト指向でデザインしてた」で十分だしそれがReactらしくないって話やん
100
(1): 2021/08/10(火)15:49 ID:LAvum0nL(1) AAS
>>99
コンポーネントの分割単位が伝わらんよ
101: 2021/08/10(火)16:58 ID:UtkECLI3(3/3) AAS
>>100
この流れで分割単位の話なんかいらないじゃん
88から読み直してみ
102: 2021/08/10(火)18:51 ID:M/It2Akn(1) AAS
> コンポーネント間のメソッド呼び出し

??????????
103
(2): 2021/08/10(火)19:15 ID:Yh+H2qBA(1/2) AAS
データフェッチに swr を使う前提であれば Recoil より swr で状態管理 hooks 作る方が良いんだろうか
両方使う例があるなら見てみたい
104
(1): 2021/08/10(火)19:38 ID:Qo7qEUjv(1) AAS
>>103
swrはサーバーサイドの情報を取ってきてキャッシュするものだから扱う状態はサーバーステートとでも呼ぶべきものなんだよね
だからクライアントサイド固有の状態を
swrで扱おうとは俺は思わない
apolloなんかはクライアントのステートも一緒に扱えるのを売りにしてるけど余計な手間をかけてるだけにしか見えない

コンポーネントのローカルステート→useState, useReducer
クライアントのグローバルステート→redux, recoilなど(俺は好かんがcontextもここに入る)
サーバーステート→swr, react query, apolloなど

と使い分けてる
105: 2021/08/10(火)20:04 ID:Yh+H2qBA(2/2) AAS
>>104
参考になるありがとう
依存ライブラリ増加を嫌うことへの妥協案で >>103 を考えてたけどその方が役割分担が明確だから状態と取得キャッシュが混合するより状態を把握しやすそう
106
(1): 2021/08/11(水)19:43 ID:u2eXJHJo(1) AAS
>>88
ちゃんとhooks使ってるか?
107
(1): 2021/08/11(水)20:53 ID:UmYmX+C7(1) AAS
>>106
ぶっちゃけクラスの方が書きやすく
コードも綺麗だ(実力高い人の場合)

関数コンポーネントは
実装の自由度がhocksとその拡張ぐらいしかなく
フレームワーク的なのが造りづらく感じてる
108
(1): 2021/08/12(木)03:09 ID:YWc6Jioi(1) AAS
実力が高いw
本気でそう思ってるならqiitaでもzennでもどこでもいいから記事に書いてみろよ
間違いなく日本中からボロクソに叩かれるよ
109: 2021/08/12(木)03:23 ID:c9YvWIsD(1) AAS
>>108
受け答えから見て実力が低そう
110
(1): 2021/08/12(木)17:08 ID:qp3m1ZO5(1) AAS
>>107
クラス記法はこういう欠点があるからなあ
外部リンク:speakerdeck.com
111: 2021/08/12(木)17:57 ID:/tY+Xjfe(1/3) AAS
大方の単細胞腦は、SQLDBとNoSQLDBの時がそうであったように
関数コンポーネントとクラスコンポーネントのどちらかに
絶対的な優劣をつけたがってんじゃね?

今回も関数コンポーネントがマッチする場合と、
そうでない場合がありそうに見える

とくに、関数コンポーネントは
コンポーネントのインスタンスが自由に扱えない(扱えなさそう)から
そういった処理の実装時に(React用で無いJSライブラリを無理やり動かしてたようなケースとか)
トラブりそうな気がする
112: 2021/08/12(木)18:16 ID:mo2yl2b6(1) AAS
典型的な「分かってないことが分かってない」ヤツ
113
(1): 2021/08/12(木)18:29 ID:1fVVrAZN(1/2) AAS
優劣はどうでもよくてクラスコンポーネントは互換性のために残されてるだけってのがReactの立場
新しい機能の中には関数コンポーネントからしか使えないものが出てるしこれからも増える
そもそも対等な選択肢ではないから議論する価値がない
状況に合わせて適応するってのが一番大事
114: 2021/08/12(木)18:43 ID:/tY+Xjfe(2/3) AAS
>>113
>> 互換性のために残されてるだけってのがReactの立場

なんと!(; ・`д・´)
115
(1): 2021/08/12(木)18:53 ID:1fVVrAZN(2/2) AAS
今の公式ドキュメントやチュートリアルは古くてクラスコンポーネントが大きく扱われてるのが本当に良くない
それはReactチームも分かってるからドキュメントを全面的に書き換えてる最中
もちろん関数コンポーネントとHooksメインで
1-
あと 366 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.021s