React と React Native のスレ (481レス)
React と React Native のスレ http://mevius.5ch.net/test/read.cgi/tech/1552134567/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
185: デフォルトの名無しさん [] 2021/10/19(火) 10:58:01.20 ID:I/uBXkGk VSCodeでsassファイル保存時に自動フォーマット掛けたいですけどそれ出来る拡張ありますか? http://mevius.5ch.net/test/read.cgi/tech/1552134567/185
186: デフォルトの名無しさん [] 2021/10/20(水) 21:47:12.22 ID:VGECjsMp >>185 marketplace.visualstudio.com/items?itemName=BdSoftware.format-on-auto-save 標準搭載してほしいわ http://mevius.5ch.net/test/read.cgi/tech/1552134567/186
187: デフォルトの名無しさん [sage] 2021/11/09(火) 10:45:02.06 ID:tf9NUtHx イベントと副作用フックどっちでもいい時に、どちらを優先して使うほうがより良いとかってある? keyを入力するテキスト入力欄、valueを表示するテキスト表示欄がある keyが変化するとデータを鯖から取ってきてvalueに設定したい 副作用フックでkeyを監視するか、key入力欄の変更通知イベントを使うか、どっちでもいいけど、どちらかというとどっちが良いか? http://mevius.5ch.net/test/read.cgi/tech/1552134567/187
188: デフォルトの名無しさん [sage] 2021/11/09(火) 11:13:14.15 ID:ppTxKkYh 入力欄の変更イベントで十分だろ そしてuseDefferedValue経由の値でサーバを叩く http://mevius.5ch.net/test/read.cgi/tech/1552134567/188
189: デフォルトの名無しさん [sage] 2021/11/17(水) 09:45:52.91 ID:gjeYELEc 素朴な疑問 状態を持ったり副作用を持ったりするコンポーネントってぶっちゃけclassのほうが可読性いいよね? フックは書く時は楽だけど後で見るとナンジャコラ?ってなる http://mevius.5ch.net/test/read.cgi/tech/1552134567/189
190: デフォルトの名無しさん [sage] 2021/11/17(水) 10:40:45.63 ID:yi3gjxGP >>110を読んでないってわかんだよね http://mevius.5ch.net/test/read.cgi/tech/1552134567/190
191: デフォルトの名無しさん [sage] 2021/11/17(水) 11:55:31.75 ID:gjeYELEc 例えばの話、コンポーネントの初期化処理と終了処理はどこでやるの?って新人の疑問に対して classコンポーネントなら 見たまんまcomponentDidMount、componentWillUnmountだよ このメソッドを用意しとくとこのコンポーネントを持って管理してるフレームワークさんが、 いい感じのタイミングで呼び出してくれるよ こう教えてやれば、直感ですぐさまなるほど、と理解して貰える しかし関数コンポーネントでは純粋関数とは何か、副作用とは何か、フックとは何か、useEffectとは何か、useEffectの引数は何か、引数の戻りの関数は何か ということをよく理解して頭の中で読み替えないといけない なのでじっくり時間をかけて教えても、それでも理解するには時間を要する 関数コンポーネントはこんなのが無数にある だから理解しにくい タイピングの文字数は減るので書くのは楽だ、ということは確かだが 理解しやすさで言うと、ちょっとね、、、 http://mevius.5ch.net/test/read.cgi/tech/1552134567/191
192: デフォルトの名無しさん [sage] 2021/11/17(水) 16:48:12.54 ID:QzSwOiy0 宣言的なReactを命令的に読み替えるんじゃ永遠に理解できないだろうな そういう教え方をされる新人がかわいそうだし同情しかない http://mevius.5ch.net/test/read.cgi/tech/1552134567/192
193: デフォルトの名無しさん [sage] 2021/11/17(水) 20:00:29.63 ID:h3betjKK reactでいくつかのファイルがあって保存(ctrl+s)すると コンパイルしてくれるファイルとしてくれないファイルがあるんだけど違いってなんですか。。。 http://mevius.5ch.net/test/read.cgi/tech/1552134567/193
194: デフォルトの名無しさん [sage] 2021/11/17(水) 20:55:02.32 ID:Wtj2hevs 使ってるide (vscodeとか) のスレで聞け http://mevius.5ch.net/test/read.cgi/tech/1552134567/194
195: デフォルトの名無しさん [sage] 2021/11/17(水) 21:47:40.34 ID:h3+MjybB >>191 クラスって何?メソッドって何?継承って何? http://mevius.5ch.net/test/read.cgi/tech/1552134567/195
196: デフォルトの名無しさん [sage] 2021/11/17(水) 22:25:06.52 ID:N4+deCyE >>191 クラスだとマウント/アンマウントじゃなくてpropsが変わるたびに開始処理終了処理するってなると全然違うこと教えなきゃダメだろ http://mevius.5ch.net/test/read.cgi/tech/1552134567/196
197: デフォルトの名無しさん [sage] 2021/11/18(木) 00:22:44.81 ID:3dlOBCKi レアクトは宣言的だけど実用的なアプリケーションは全て有状態の手続きの塊じゃん? ということはレアクトと「この不都合な現実世界」を上手いこと切り離して管理する方法が必要なんだよ それがオブジェクト指向ってわけでね 関数コンポーネントは分離すべき手続きと宣言が渾然一体となっていてわかりにくい オブジェクト指向を使えば オブジェクトとオブジェクトを描画する純粋関数に分離することは容易い それがrenderメソッドな訳だな http://mevius.5ch.net/test/read.cgi/tech/1552134567/197
198: デフォルトの名無しさん [sage] 2021/11/18(木) 00:44:06.97 ID:aYAbIgl/ レアクト http://mevius.5ch.net/test/read.cgi/tech/1552134567/198
199: デフォルトの名無しさん [sage] 2021/11/18(木) 00:47:56.13 ID:F8B2t3Oi また知恵遅れクラス信者か この流れ何度目だよw http://mevius.5ch.net/test/read.cgi/tech/1552134567/199
200: デフォルトの名無しさん [sage] 2021/11/18(木) 01:15:46.87 ID:3dlOBCKi 関数が優位に立つのはDOMのレンダリングだけ 状態管理と手続きという不可避の現実はオブジェクト指向で処理したほうがいい 関数は状態が無いものだけを扱うべき http://mevius.5ch.net/test/read.cgi/tech/1552134567/200
201: デフォルトの名無しさん [sage] 2021/11/18(木) 07:26:11.67 ID:sAyjJzQx 状態や手続きを分離する方法はオブジェクトだけじゃない モナドもそれだしReactの場合は代数的作用が背景にある http://mevius.5ch.net/test/read.cgi/tech/1552134567/201
202: デフォルトの名無しさん [sage] 2021/11/18(木) 07:56:21.14 ID:JMkvun5L >>70辺りからの話を繰り返してるな 高々200しかレスがない過疎スレなんだから一通り読んでから書けばいいのに http://mevius.5ch.net/test/read.cgi/tech/1552134567/202
203: デフォルトの名無しさん [sage] 2021/11/18(木) 08:07:20.27 ID:3dlOBCKi >>201 できる、と、簡単にできる、は全く違うからなぁ モナドもあるしとか言っても、それはオブジェクト指向の簡単さ、理解しやすさ、使いやすさには到底及ばないわけだよ http://mevius.5ch.net/test/read.cgi/tech/1552134567/203
204: デフォルトの名無しさん [sage] 2021/11/18(木) 08:56:13.25 ID:O/tzCGdy それってオブジェクト指向を学んでから進歩してませんって自己紹介にすぎなくてオブジェクト指向がしっくりこなかったstaticおじさんと同じなんだよな http://mevius.5ch.net/test/read.cgi/tech/1552134567/204
205: デフォルトの名無しさん [sage] 2021/11/18(木) 10:18:03.07 ID:5if92K6E 理解しやすさ簡単さはオブジェクト指向から学んできたおじさんと関数型から学んできた若者で違うから議論してもしゃーない それよりReact18がベータになったことだしConcurrent Renderingを知るべき そしたら行儀の悪いクラスコンポーネントがReactにとって不都合だとわかるし関数コンポーネントで行儀の悪いコードを書きにくくしてることもわかるだろう http://mevius.5ch.net/test/read.cgi/tech/1552134567/205
206: デフォルトの名無しさん [sage] 2021/11/18(木) 10:23:00.26 ID:5if92K6E Concurrent Renderingでは1回のレンダリングでrenderメソッドや関数コンポーネントが複数回呼ばれることが起こるようになる いわゆる再レンダリングで複数回じゃなくて例えばdidMountが呼ばれる前にrenderが何度も呼ばれることが起きるようになる だからrenderメソッドの中でthis.xxxを更新するなどの副作用があると破綻する それは元々やるべきことじゃなくて行儀か悪いだけなんだがクラスコンポーネントでは書こうと思えば簡単に書けてしまう そういうバグを検出するために前から用意されてたのがStrictモードだがあまり使われてるのを見たことはないな クラスコンポーネントだとthis.stateはthis.setStatateを通じてReactが管理してるがその他はクラスコンポーネント任せで野放しになってるのがReact側から見た問題 そこで導入されたのが関数コンポーネントで状態や副作用の扱いが制限されて簡単に見えないのは意図的なんだよね http://mevius.5ch.net/test/read.cgi/tech/1552134567/206
207: デフォルトの名無しさん [sage] 2021/11/18(木) 10:29:08.68 ID:5if92K6E 将来のReactではマウント・アンマウントも複数回行われるようになる これもコンポーネントのインスタンスが変わる場合の話じゃなくて一つのコンポーネントインスタンスが何度もマウント・アンマウントを繰り返すようになる クラスコンポーネントではdidMount/willUnmountか同じthisの上で何度も呼ばれることになるんだろう だから従来のライフサイクルという考え方だと破綻する useEffectは以前からライフサイクルと考えてはいけないと言われてるしそのためにuseEffectのコールバックは冪等にすべきという原則もある React18ではそれによって起きる問題を検出するためにStrict Effectモードが増える こうなるとuseEffectを従来の初期化処理・終了処理に読み替えて理解させるのは単純に間違いということになる どちらが理解しやすいかという次元の話じゃないんだよね http://mevius.5ch.net/test/read.cgi/tech/1552134567/207
208: デフォルトの名無しさん [sage] 2021/11/18(木) 13:11:55.12 ID:3dlOBCKi それはuseStateを使うかlet変数宣言を使うかってのと同じこと 行儀の悪いコードはファンクショナルでも好きなだけ書ける ようするにプログラマの腕とモラルの問題 ファンクショナルがクラスに対して優位と示す証拠ではないな Reactが将来のバージョンアップでライフタイムサイクルの仕様変更となるなら 新しいライフタイムサイクルに適応したライフタイムサイクルメソッドを設ければいいだけ そしてその方がuseEffectより遥かに直感的で理解しやすくなるだろう 実際どんな名称になるかはレアクトマニアでない俺は知らんがおそらくは initializeComponent componentDidMount componentWillUnmount disposeComponent この辺りだろう なんてわかりやすいんだ! そもそも仕様変更されるからファンクショナルのほうがいいんだーって論理破綻しとるよな 仕様変更されたらそれに合わせてクラスコンポーネントも進化するのが当たり前 進化しないならそれはベンダーの怠慢 http://mevius.5ch.net/test/read.cgi/tech/1552134567/208
209: デフォルトの名無しさん [sage] 2021/11/18(木) 14:18:18.92 ID:I+5yMFIL ライフサイクルが変わってもuseEffectは影響を受けない なぜならライフサイクルを扱う機能ではないから ライフサイクルという考え方そのものを改めたのが今の関数コンポーネントとhookなんだよ だからライフサイクルメソッドを増やせばいいなんて話ではないんだが伝わらないんだろうなw まぁ、取り残されたければそれでいいんじゃない? ここで吠えてもReactチームがクラスコンポーネントを進化させることはないよ 本気で主張したけりゃここに行きな https://github.com/reactwg/react-18/discussions http://mevius.5ch.net/test/read.cgi/tech/1552134567/209
210: デフォルトの名無しさん [sage] 2021/11/18(木) 15:19:55.65 ID:3dlOBCKi 本来ライフサイクルメソッドではないuseEffectを、ライフサイクル目的で使わざるを得ない、という状況が非常にバッドだよねぇ APIの目的外利用ってバッドノウハウとか、黒魔術って呼ばれてるものだよ 最近はそういうの随分と減ったと思ったけど、ファンクショナルコンポーネントでは現役なんだなぁ useEffectはライフサイクルじゃない!ってんなら useInitializer useFainalizer この2つのフックはオフィシャルに提供した方がいいだろね それをしないというのはベンダーの怠慢でしかないよ そうすれば、useEffectの第二引数に謎の空配列を渡すと、お掃除する時にだけ呼ばれます! なーんて回りくどい、明快さのかけらもない、暗黙の了解はもう、要らなくなるわけだ 冷静に考えてわかりにくいだろ? 空配列ってさ http://mevius.5ch.net/test/read.cgi/tech/1552134567/210
211: デフォルトの名無しさん [sage] 2021/11/18(木) 16:20:58.58 ID:yPpHDEE/ 本当に化石のような石頭だな 現場でもさぞかし迷惑な存在だろう ライフサイクルって考え方をしないんだからuseInitializerもuseFainalizerも不要なんだよ 間違った理解 コンポーネントがマウントされたら一度だけxxを実行する コンポーネントがアンマウントされたら一度だけyyを実行する (やや)正しい理解 コンポーネントがマウントされてる間はzzの状態を維持する zzの状態ってのはイベントをリッスンしてる状態とかwebsocketをサブスクイブしてる状態とか色々 useEffectのコールバックがそういう「状態を維持する」ものって考えると必然的に冪等にしなきゃいけなくなりConcurrent Renderingで繰り返し呼ばれても大丈夫になる 実際はマウントされてる間とかってのをもっと一般化して 正しい理解 依存配列が変わらない間は状態を維持する と考える 空配列は変わりようがないから結果的にマウントしてる間はずっと状態を維持するってことになる だからね、ライフサイクルって考え方がもはや不要で間違ってるんだよ いつまでも古い考えに固執しないでちゃんと勉強して? http://mevius.5ch.net/test/read.cgi/tech/1552134567/211
212: デフォルトの名無しさん [sage] 2021/11/18(木) 16:43:19.19 ID:3dlOBCKi >>211 で、それは手続きだらけの現実世界には対処不能、と ファンクショナル界隈の連中って、なんでか理想論ばっかなんだよなぁ コンポーネント初期化時に一回、何か処理をしたい、って自然な要求に直接答える術がない useEffectという本来違う目的のためにあるものを、使うしかない これがファンクショナルの限界 例えばコンポーネント初期化時にログを追記したい、とかな 「状態維持する」って考えじゃ実現できねえ処理なんざ、世の中にはいくらでもあるんだ http://mevius.5ch.net/test/read.cgi/tech/1552134567/212
213: デフォルトの名無しさん [sage] 2021/11/18(木) 17:09:36.68 ID:tb6GSOae ファンクショナルの限界じゃなくてお前の限界な http://mevius.5ch.net/test/read.cgi/tech/1552134567/213
214: デフォルトの名無しさん [sage] 2021/11/18(木) 18:20:41.19 ID:te8WLqUU うわあ・・・ ID:3dlOBCKi ttp://hissi.org/read.php/tech/20211118/M2RsT0JDS2k.html http://mevius.5ch.net/test/read.cgi/tech/1552134567/214
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 267 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.009s