React と React Native のスレ (481レス)
上下前次1-新
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メインで
116: 2021/08/12(木)19:01 ID:/tY+Xjfe(3/3) AAS
>>115
なんと!(; ・`д・´)
117(1): 2021/08/26(木)15:41 ID:CFvcLd/B(1/2) AAS
フック初心者ですが
「フックは関数のトップレベルのみで呼び出してください。」
とあります。この関数は関数コンポーネントの意味で合ってますでしょうか?
118(1): 2021/08/26(木)15:51 ID:CFvcLd/B(2/2) AAS
<Button1>と<Button2>で
それぞれ内部でuseStateを使ってたら
<Button1>
<Button2/>
</Button1>
はNGになるのでしょうか?
119: 2021/08/26(木)16:38 ID:gityixOl(1/2) AAS
>>117
> この関数は関数コンポーネントの意味
違う
ifやforなどの制御構造の内側から呼び出すなということ
要するに関数コンポーネントの呼び出しごとにhookが実行されたりされなかったりしてはいけない
なので?:や&&などと組み合わせるのもダメ
120(1): 2021/08/26(木)16:39 ID:gityixOl(2/2) AAS
>>118
それはOK
それぞれのコンポーネントは独立してるから問題ない
121: 2021/08/26(木)16:45 ID:KmLAFOYJ(1) AAS
>>120
有り難い!
しかし判り辛いですね
お題目だけだと
公式に具体例を上げてくれないと
勘違いしそう...
122: 2021/08/27(金)13:34 ID:gabOubiT(1) AAS
hookの実行順でレンダリング毎の同一性を保証してるってわかってれば当たり前のことなんだけどね
123: 2021/08/27(金)13:54 ID:KVovKrAi(1/2) AAS
順番で状態を管理してるって一昔前の考えだと
なんだそりゃって感じになるんだけど
そもそも自分で管理するのはクソだから
全部フレームワークに任せちゃえってなってる
React凄い
124: 2021/08/27(金)15:19 ID:B8clkCSU(1/2) AAS
翻訳の問題かもしれんけど
「関数のトップレベル」という表現が判りずらい
「関数内部の最初の行あたり」で良くないか?
125: 2021/08/27(金)15:45 ID:nZgJAtld(1) AAS
function Foo(props) {
if (props.flag) useEffect(...)
...
最初の行だけどアウト
126: 2021/08/27(金)15:48 ID:KVovKrAi(2/2) AAS
「同じフックが常に実行されるようにすること」
これでよくね?
127: 2021/08/27(金)15:49 ID:B8clkCSU(2/2) AAS
関数のトップレベルの訳としての話しだよ(´Д`)
128: 2021/08/27(金)15:57 ID:rY0RNuZ6(1) AAS
モジュールのトップレベルもわからない?
それじゃトップレベルawaitも分からないしJSやるの無理やろ
129: 2021/08/28(土)04:17 ID:5cd2kTad(1/7) AAS
useCallback これっている?
fnのMemoならMemoってキーワードも名称から抜けてるし
useMemo(() => fn, deps) と同じならなおさら...
130: 2021/08/28(土)04:35 ID:52Q/kK4D(1) AAS
fnをファットアローでインラインに書いてみ
131: 2021/08/28(土)04:42 ID:5cd2kTad(2/7) AAS
うー−ん!初学者だからなのか意味わからんです
132: 2021/08/28(土)04:46 ID:5cd2kTad(3/7) AAS
useCallback(fn, deps) が useMemo(() => fn, deps) こう書けるって事なんじゃないですか?
133(1): 2021/08/28(土)04:54 ID:aWJHFkdS(1) AAS
useCallback((event) => {...}, deps) を useMemo(() => (event) => {...}, deps) って書きたいかって話
134: 2021/08/28(土)05:10 ID:5cd2kTad(4/7) AAS
>>133
良い!
そっちのが良い!
fnのメモなのに、useMemoCallback()になってないので直観的に思えない
初学者だと、ぱっと見CallbackするにはuseCallback()が必須に見える
理由はMemoの文字が入ってないから
135: 2021/08/28(土)06:24 ID:P0+dXebs(1) AAS
それ言ったらuseMemoなんてuseState使えばいいし内部でstate使ってるのにuseNemoStateじゃないの直感的じゃないよね
136(1): 2021/08/28(土)08:24 ID:5cd2kTad(5/7) AAS
useCallback だと名称から、
コールバック使いますよ!の宣言に見えると言っている
実際はコールバックをメモしますよ!だから
コード読むとき直感的でないと言っている
実際、初学者で関数コンポネント内でコールバックを定義するときは
useCallback()を使わなければならないと思いこんでいる人が少なからず居ると思う
137: 2021/08/28(土)10:18 ID:rJz23Izt(1/2) AAS
Ionicと比べた場合のReact nativeのメリットはアプリの動作速度が速いところ?
138: 2021/08/28(土)10:19 ID:rJz23Izt(2/2) AAS
ageてしまって申し訳ない
139(1): 2021/08/28(土)10:59 ID:4fr1GGj/(1) AAS
>>136
初学者は
> useCallback()を使わなければならないと思いこんでいる
で丁度いい
140(1): 2021/08/28(土)11:35 ID:5cd2kTad(6/7) AAS
>>139
その心は?
141(1): 2021/08/28(土)12:30 ID:fYYl/4Rj(1) AAS
>>140
不要なuseCallbackを書いても実害はない
超大規模ならチリツモでパフォーマンスに影響あるかもしれないが初学者には関係ない
対して必要なuseCallbackを忘れるとuseEffectやReact.memoに影響しうるが初学者には気付きにくい
最初は愚直にuseCallback書いて後から不要なケースを学べばいい
142: 2021/08/28(土)13:47 ID:17Xf1f5F(1) AAS
>>141
なるほど!
その意味であえて関数名もそうしたんだろうか...
上下前次1-新書関写板覧索設栞歴
あと 339 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ
ぬこの手 ぬこTOP 0.015s