Q. Reactってなんですか?
A. ブラウザで動くウェブアプリを作るJavaScriptフレームワークです
Q. React使えば、iOSやAndroidアプリも作れるのですか?
A. 作れません。(ブラウザでなら動きます)
Q. でも動くってきいたんだけど?
A. それはReactではなくReact Nativeです。
Q. React と React Native は同じようなものじゃないの?
A. 設計思想が同じなだけで、中身は全くの別物です。
Q. React Nativeで作ればブラウザで動くの?
A. 動きません。(動くようにするサードパーティ製のライブラリならあります)
Q. React と React Native でソースコード共通化できるの?
A. UIの部分は共通化出来ません。UI以外の部分なら頑張れば
Q. このスレはどっちの話題のスレなの?
A. 両方です。どっちの話題をしているかは文脈で判断してください
React と React Native のスレ
2019/03/09(土) 21:29:27.97ID:AJ6jPa0v
101デフォルトの名無しさん
2021/08/10(火) 16:58:18.35ID:UtkECLI3102デフォルトの名無しさん
2021/08/10(火) 18:51:43.55ID:M/It2Akn > コンポーネント間のメソッド呼び出し
??????????
??????????
103デフォルトの名無しさん
2021/08/10(火) 19:15:22.44ID:Yh+H2qBA データフェッチに swr を使う前提であれば Recoil より swr で状態管理 hooks 作る方が良いんだろうか
両方使う例があるなら見てみたい
両方使う例があるなら見てみたい
104デフォルトの名無しさん
2021/08/10(火) 19:38:32.34ID:Qo7qEUjv >>103
swrはサーバーサイドの情報を取ってきてキャッシュするものだから扱う状態はサーバーステートとでも呼ぶべきものなんだよね
だからクライアントサイド固有の状態を
swrで扱おうとは俺は思わない
apolloなんかはクライアントのステートも一緒に扱えるのを売りにしてるけど余計な手間をかけてるだけにしか見えない
コンポーネントのローカルステート→useState, useReducer
クライアントのグローバルステート→redux, recoilなど(俺は好かんがcontextもここに入る)
サーバーステート→swr, react query, apolloなど
と使い分けてる
swrはサーバーサイドの情報を取ってきてキャッシュするものだから扱う状態はサーバーステートとでも呼ぶべきものなんだよね
だからクライアントサイド固有の状態を
swrで扱おうとは俺は思わない
apolloなんかはクライアントのステートも一緒に扱えるのを売りにしてるけど余計な手間をかけてるだけにしか見えない
コンポーネントのローカルステート→useState, useReducer
クライアントのグローバルステート→redux, recoilなど(俺は好かんがcontextもここに入る)
サーバーステート→swr, react query, apolloなど
と使い分けてる
105デフォルトの名無しさん
2021/08/10(火) 20:04:49.62ID:Yh+H2qBA106デフォルトの名無しさん
2021/08/11(水) 19:43:56.70ID:u2eXJHJo >>88
ちゃんとhooks使ってるか?
ちゃんとhooks使ってるか?
107デフォルトの名無しさん
2021/08/11(水) 20:53:01.89ID:UmYmX+C7108デフォルトの名無しさん
2021/08/12(木) 03:09:43.60ID:YWc6Jioi 実力が高いw
本気でそう思ってるならqiitaでもzennでもどこでもいいから記事に書いてみろよ
間違いなく日本中からボロクソに叩かれるよ
本気でそう思ってるならqiitaでもzennでもどこでもいいから記事に書いてみろよ
間違いなく日本中からボロクソに叩かれるよ
109デフォルトの名無しさん
2021/08/12(木) 03:23:50.10ID:c9YvWIsD >>108
受け答えから見て実力が低そう
受け答えから見て実力が低そう
110デフォルトの名無しさん
2021/08/12(木) 17:08:42.90ID:qp3m1ZO5111デフォルトの名無しさん
2021/08/12(木) 17:57:27.67ID:/tY+Xjfe 大方の単細胞腦は、SQLDBとNoSQLDBの時がそうであったように
関数コンポーネントとクラスコンポーネントのどちらかに
絶対的な優劣をつけたがってんじゃね?
今回も関数コンポーネントがマッチする場合と、
そうでない場合がありそうに見える
とくに、関数コンポーネントは
コンポーネントのインスタンスが自由に扱えない(扱えなさそう)から
そういった処理の実装時に(React用で無いJSライブラリを無理やり動かしてたようなケースとか)
トラブりそうな気がする
関数コンポーネントとクラスコンポーネントのどちらかに
絶対的な優劣をつけたがってんじゃね?
今回も関数コンポーネントがマッチする場合と、
そうでない場合がありそうに見える
とくに、関数コンポーネントは
コンポーネントのインスタンスが自由に扱えない(扱えなさそう)から
そういった処理の実装時に(React用で無いJSライブラリを無理やり動かしてたようなケースとか)
トラブりそうな気がする
112デフォルトの名無しさん
2021/08/12(木) 18:16:18.47ID:mo2yl2b6 典型的な「分かってないことが分かってない」ヤツ
113デフォルトの名無しさん
2021/08/12(木) 18:29:54.23ID:1fVVrAZN 優劣はどうでもよくてクラスコンポーネントは互換性のために残されてるだけってのがReactの立場
新しい機能の中には関数コンポーネントからしか使えないものが出てるしこれからも増える
そもそも対等な選択肢ではないから議論する価値がない
状況に合わせて適応するってのが一番大事
新しい機能の中には関数コンポーネントからしか使えないものが出てるしこれからも増える
そもそも対等な選択肢ではないから議論する価値がない
状況に合わせて適応するってのが一番大事
114デフォルトの名無しさん
2021/08/12(木) 18:43:59.17ID:/tY+Xjfe115デフォルトの名無しさん
2021/08/12(木) 18:53:29.47ID:1fVVrAZN 今の公式ドキュメントやチュートリアルは古くてクラスコンポーネントが大きく扱われてるのが本当に良くない
それはReactチームも分かってるからドキュメントを全面的に書き換えてる最中
もちろん関数コンポーネントとHooksメインで
それはReactチームも分かってるからドキュメントを全面的に書き換えてる最中
もちろん関数コンポーネントとHooksメインで
116デフォルトの名無しさん
2021/08/12(木) 19:01:46.19ID:/tY+Xjfe >>115
なんと!(; ・`д・´)
なんと!(; ・`д・´)
117デフォルトの名無しさん
2021/08/26(木) 15:41:55.94ID:CFvcLd/B フック初心者ですが
「フックは関数のトップレベルのみで呼び出してください。」
とあります。この関数は関数コンポーネントの意味で合ってますでしょうか?
「フックは関数のトップレベルのみで呼び出してください。」
とあります。この関数は関数コンポーネントの意味で合ってますでしょうか?
118デフォルトの名無しさん
2021/08/26(木) 15:51:22.45ID:CFvcLd/B <Button1>と<Button2>で
それぞれ内部でuseStateを使ってたら
<Button1>
<Button2/>
</Button1>
はNGになるのでしょうか?
それぞれ内部でuseStateを使ってたら
<Button1>
<Button2/>
</Button1>
はNGになるのでしょうか?
119デフォルトの名無しさん
2021/08/26(木) 16:38:00.65ID:gityixOl >>117
> この関数は関数コンポーネントの意味
違う
ifやforなどの制御構造の内側から呼び出すなということ
要するに関数コンポーネントの呼び出しごとにhookが実行されたりされなかったりしてはいけない
なので?:や&&などと組み合わせるのもダメ
> この関数は関数コンポーネントの意味
違う
ifやforなどの制御構造の内側から呼び出すなということ
要するに関数コンポーネントの呼び出しごとにhookが実行されたりされなかったりしてはいけない
なので?:や&&などと組み合わせるのもダメ
120デフォルトの名無しさん
2021/08/26(木) 16:39:25.72ID:gityixOl121デフォルトの名無しさん
2021/08/26(木) 16:45:57.37ID:KmLAFOYJ122デフォルトの名無しさん
2021/08/27(金) 13:34:41.69ID:gabOubiT hookの実行順でレンダリング毎の同一性を保証してるってわかってれば当たり前のことなんだけどね
123デフォルトの名無しさん
2021/08/27(金) 13:54:27.15ID:KVovKrAi 順番で状態を管理してるって一昔前の考えだと
なんだそりゃって感じになるんだけど
そもそも自分で管理するのはクソだから
全部フレームワークに任せちゃえってなってる
React凄い
なんだそりゃって感じになるんだけど
そもそも自分で管理するのはクソだから
全部フレームワークに任せちゃえってなってる
React凄い
124デフォルトの名無しさん
2021/08/27(金) 15:19:14.34ID:B8clkCSU 翻訳の問題かもしれんけど
「関数のトップレベル」という表現が判りずらい
「関数内部の最初の行あたり」で良くないか?
「関数のトップレベル」という表現が判りずらい
「関数内部の最初の行あたり」で良くないか?
125デフォルトの名無しさん
2021/08/27(金) 15:45:49.48ID:nZgJAtld function Foo(props) {
if (props.flag) useEffect(...)
...
最初の行だけどアウト
if (props.flag) useEffect(...)
...
最初の行だけどアウト
126デフォルトの名無しさん
2021/08/27(金) 15:48:30.00ID:KVovKrAi 「同じフックが常に実行されるようにすること」
これでよくね?
これでよくね?
127デフォルトの名無しさん
2021/08/27(金) 15:49:19.59ID:B8clkCSU 関数のトップレベルの訳としての話しだよ(´Д`)
128デフォルトの名無しさん
2021/08/27(金) 15:57:29.79ID:rY0RNuZ6 モジュールのトップレベルもわからない?
それじゃトップレベルawaitも分からないしJSやるの無理やろ
それじゃトップレベルawaitも分からないしJSやるの無理やろ
129デフォルトの名無しさん
2021/08/28(土) 04:17:28.74ID:5cd2kTad useCallback これっている?
fnのMemoならMemoってキーワードも名称から抜けてるし
useMemo(() => fn, deps) と同じならなおさら...
fnのMemoならMemoってキーワードも名称から抜けてるし
useMemo(() => fn, deps) と同じならなおさら...
130デフォルトの名無しさん
2021/08/28(土) 04:35:56.44ID:52Q/kK4D fnをファットアローでインラインに書いてみ
131デフォルトの名無しさん
2021/08/28(土) 04:42:56.91ID:5cd2kTad うー−ん!初学者だからなのか意味わからんです
132デフォルトの名無しさん
2021/08/28(土) 04:46:30.48ID:5cd2kTad useCallback(fn, deps) が useMemo(() => fn, deps) こう書けるって事なんじゃないですか?
133デフォルトの名無しさん
2021/08/28(土) 04:54:08.75ID:aWJHFkdS useCallback((event) => {...}, deps) を useMemo(() => (event) => {...}, deps) って書きたいかって話
134デフォルトの名無しさん
2021/08/28(土) 05:10:24.97ID:5cd2kTad >>133
良い!
そっちのが良い!
fnのメモなのに、useMemoCallback()になってないので直観的に思えない
初学者だと、ぱっと見CallbackするにはuseCallback()が必須に見える
理由はMemoの文字が入ってないから
良い!
そっちのが良い!
fnのメモなのに、useMemoCallback()になってないので直観的に思えない
初学者だと、ぱっと見CallbackするにはuseCallback()が必須に見える
理由はMemoの文字が入ってないから
135デフォルトの名無しさん
2021/08/28(土) 06:24:50.37ID:P0+dXebs それ言ったらuseMemoなんてuseState使えばいいし内部でstate使ってるのにuseNemoStateじゃないの直感的じゃないよね
136デフォルトの名無しさん
2021/08/28(土) 08:24:29.02ID:5cd2kTad useCallback だと名称から、
コールバック使いますよ!の宣言に見えると言っている
実際はコールバックをメモしますよ!だから
コード読むとき直感的でないと言っている
実際、初学者で関数コンポネント内でコールバックを定義するときは
useCallback()を使わなければならないと思いこんでいる人が少なからず居ると思う
コールバック使いますよ!の宣言に見えると言っている
実際はコールバックをメモしますよ!だから
コード読むとき直感的でないと言っている
実際、初学者で関数コンポネント内でコールバックを定義するときは
useCallback()を使わなければならないと思いこんでいる人が少なからず居ると思う
137デフォルトの名無しさん
2021/08/28(土) 10:18:42.44ID:rJz23Izt Ionicと比べた場合のReact nativeのメリットはアプリの動作速度が速いところ?
138デフォルトの名無しさん
2021/08/28(土) 10:19:30.77ID:rJz23Izt ageてしまって申し訳ない
139デフォルトの名無しさん
2021/08/28(土) 10:59:30.05ID:4fr1GGj/140デフォルトの名無しさん
2021/08/28(土) 11:35:50.02ID:5cd2kTad >>139
その心は?
その心は?
141デフォルトの名無しさん
2021/08/28(土) 12:30:31.08ID:fYYl/4Rj >>140
不要なuseCallbackを書いても実害はない
超大規模ならチリツモでパフォーマンスに影響あるかもしれないが初学者には関係ない
対して必要なuseCallbackを忘れるとuseEffectやReact.memoに影響しうるが初学者には気付きにくい
最初は愚直にuseCallback書いて後から不要なケースを学べばいい
不要なuseCallbackを書いても実害はない
超大規模ならチリツモでパフォーマンスに影響あるかもしれないが初学者には関係ない
対して必要なuseCallbackを忘れるとuseEffectやReact.memoに影響しうるが初学者には気付きにくい
最初は愚直にuseCallback書いて後から不要なケースを学べばいい
142デフォルトの名無しさん
2021/08/28(土) 13:47:14.15ID:17Xf1f5F143デフォルトの名無しさん
2021/08/28(土) 23:14:15.55ID:5cd2kTad https://medium.com/@dan_abramov/making-sense-of-react-hooks-fdbde8803889
"カスタムフックは技術的にはReact機能ではない" って
ステートレス関数に状態を保持する機能が
jsに元よりあるという事でしょうか?
"カスタムフックは技術的にはReact機能ではない" って
ステートレス関数に状態を保持する機能が
jsに元よりあるという事でしょうか?
144デフォルトの名無しさん
2021/08/28(土) 23:39:41.08ID:tYNkdatt カスタムフック===ユーザー定義フック
利用者(アプリケーション)で定義するものであってReactが提供する機能ではない
利用者(アプリケーション)で定義するものであってReactが提供する機能ではない
145デフォルトの名無しさん
2021/08/29(日) 00:17:55.75ID:V85oGWwE >>144
それは了解してた!(質問を間違えた!)
フックを実現する技術(ステートレス関数に状態を保持する機能)は
JSに元からあるという記述が公式にあったようにおもうのだけれど、
それは何?って事が言いたかった...
それは了解してた!(質問を間違えた!)
フックを実現する技術(ステートレス関数に状態を保持する機能)は
JSに元からあるという記述が公式にあったようにおもうのだけれど、
それは何?って事が言いたかった...
146デフォルトの名無しさん
2021/08/29(日) 01:51:35.47ID:V85oGWwE >>145
前のリンクの文意から推察するに、フックはreactの特別な機能じゃなく
JSのクロージャーと array.push と array.pop とかで実装できるって事かな?
誤りありましたらご指摘下さい
前のリンクの文意から推察するに、フックはreactの特別な機能じゃなく
JSのクロージャーと array.push と array.pop とかで実装できるって事かな?
誤りありましたらご指摘下さい
147デフォルトの名無しさん
2021/08/29(日) 03:34:12.05ID:pzZWZODD 引用しろボケカス
148デフォルトの名無しさん
2021/08/29(日) 12:10:00.26ID:OiCqCGE7 >>146
前のリンクの文意というのが
> Since Hooks are regular JavaScript functions, you can combine built-in Hooks provided by React into your own “custom Hooks”.
ら辺のことなら全然違う
Reactが提供する「組み込みフック」はJSの普通の関数だからそれを組み合わせて「カスタムフック」を作れると言ってるだけ
Reactが「組み込みフック」をどう実装しているかは触れてない
公式にあったという記述がなんのことかわからないがユーザー向けのドキュメントにReactの内部実装について書いてあるとは考えにくいので何か勘違いしてるんだろう
前のリンクの文意というのが
> Since Hooks are regular JavaScript functions, you can combine built-in Hooks provided by React into your own “custom Hooks”.
ら辺のことなら全然違う
Reactが提供する「組み込みフック」はJSの普通の関数だからそれを組み合わせて「カスタムフック」を作れると言ってるだけ
Reactが「組み込みフック」をどう実装しているかは触れてない
公式にあったという記述がなんのことかわからないがユーザー向けのドキュメントにReactの内部実装について書いてあるとは考えにくいので何か勘違いしてるんだろう
149デフォルトの名無しさん
2021/08/29(日) 12:12:17.85ID:OiCqCGE7 もっともReactの組み込みフックがJS(+Flowtype)で実装されてるのは考えるまでもなく事実
詳しく知りたければソースを読めばいい
https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberHooks.new.js
詳しく知りたければソースを読めばいい
https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberHooks.new.js
150デフォルトの名無しさん
2021/08/29(日) 13:18:38.44ID:V85oGWwE151デフォルトの名無しさん
2021/08/29(日) 13:41:49.73ID:1XJvcbdc >>150
お前さぁ・・・
フック自体の実装方法が知りたいならそう書けよ
無関係なリンクや公式のことを書くから「そんなことは書いてない」「お前の勘違い」「ボケカス」って話になるんだよ
つーか5ch開く前にすることあるだろ
お前さぁ・・・
フック自体の実装方法が知りたいならそう書けよ
無関係なリンクや公式のことを書くから「そんなことは書いてない」「お前の勘違い」「ボケカス」って話になるんだよ
つーか5ch開く前にすることあるだろ
152デフォルトの名無しさん
2021/08/29(日) 14:30:21.63ID:LbdE2Z/6 >>150
preactのソースを読め
わずか400行そこらでhooksを実装してる
俺がここ数年で見たコードで最も美しいコードだ
型もついてるからめちゃくちゃ読みやすい
https://github.com/preactjs/preact/blob/master/hooks
preactのソースを読め
わずか400行そこらでhooksを実装してる
俺がここ数年で見たコードで最も美しいコードだ
型もついてるからめちゃくちゃ読みやすい
https://github.com/preactjs/preact/blob/master/hooks
153デフォルトの名無しさん
2021/08/29(日) 21:46:55.62ID:V85oGWwE >>152
(; ・`д・´)
(; ・`д・´)
154デフォルトの名無しさん
2021/09/18(土) 13:05:29.83ID:ZtgFEKoc reduxでいままでやってたような処理ってhooksではuseContextとuseRuducerの組み合わせでやるってことであってます?
155デフォルトの名無しさん
2021/09/20(月) 00:13:37.74ID:fIDZ4k/Q 最近react始めて、リスト構造を持つようなデータの画面表示は配列のmap関数使ってjsx書けってのは理解したんだが、配列の要素の持つデータを一か所でも変えると残りの要素は全く変わってないのに全てレンダリング処理し直すことになるよな?
reactが差分を見てくれるから実際のDOMに反映されることはないんだろうけど、変更された要素のコンポーネントだけにレンダリング処理させる方法ってないんか?
reactが差分を見てくれるから実際のDOMに反映されることはないんだろうけど、変更された要素のコンポーネントだけにレンダリング処理させる方法ってないんか?
156デフォルトの名無しさん
2021/09/20(月) 00:18:04.28ID:pwmEuNTH157デフォルトの名無しさん
2021/09/20(月) 01:13:11.44ID:GKDt5rSn >>155
ならない
ならない
158デフォルトの名無しさん
2021/09/20(月) 02:01:14.08ID:Rr9hULkc159デフォルトの名無しさん
2021/09/20(月) 08:25:15.93ID:fIDZ4k/Q160デフォルトの名無しさん
2021/09/20(月) 12:16:07.93ID:GKDt5rSn161デフォルトの名無しさん
2021/09/20(月) 12:53:40.75ID:2GdVuLmq keyが必要なのは確かだがそれが影響するのはリアルDOMの更新
keyがないと
> reactが差分を見てくれるから実際のDOMに反映されることはないんだろうけど
が機能しなくなる
本来の質問であるコンポーネントのレンダリングを回避するのに必要なのはReact.memo
keyがないと
> reactが差分を見てくれるから実際のDOMに反映されることはないんだろうけど
が機能しなくなる
本来の質問であるコンポーネントのレンダリングを回避するのに必要なのはReact.memo
162デフォルトの名無しさん
2021/09/20(月) 18:39:05.51ID:0kyk7DvV ID:GKDt5rSn の的外れ感
163デフォルトの名無しさん
2021/09/20(月) 19:00:16.83ID:wV0zqhwC ストアに登録する前に1ヶ月テスト運用したいのですがそんなこと可能なんですか?
テストユーザーは50名程度の予定です
テストユーザーは50名程度の予定です
164デフォルトの名無しさん
2021/09/20(月) 21:16:44.39ID:hoT+CjfW それReact関係ないよね
165デフォルトの名無しさん
2021/09/22(水) 02:10:39.83ID:LiQqK68K うーん、先に代弁してくれてる人もいる通り、自分が聞きたかったことを解消できるものじゃなかったな、keyを付けないかんてのは改めてよく分かったけど。memoに関しては配列でmap関数でjsx組立ててる場合に言及した解説サイトは見当たらんかったし、うまくいくかは一度書いて調べてみるかー
166デフォルトの名無しさん
2021/09/22(水) 15:53:36.27ID:LiQqK68K >>165だけど、memo化して特定の子要素だけレンダリングが呼び出されるのを確認できたわ
ありがとう
ありがとう
167デフォルトの名無しさん
2021/09/25(土) 21:37:04.38ID:h7oOvGYh Vue.jsだと公式サイトからリンクにawesome-vueってのがあって
https://github.com/vuejs/awesome-vue
ここ(Components & Libraries)にVue向けのlibraryやcontrolのリストが列挙されてて大変便利なんですけど、
これのReact版とか無いですか?
https://github.com/vuejs/awesome-vue
ここ(Components & Libraries)にVue向けのlibraryやcontrolのリストが列挙されてて大変便利なんですけど、
これのReact版とか無いですか?
168デフォルトの名無しさん
2021/09/25(土) 21:39:38.06ID:h7oOvGYh 言った直後にまんまのがあった...
awesome-react
awesome-react-components
笑
awesome-react
awesome-react-components
笑
169デフォルトの名無しさん
2021/09/25(土) 23:03:28.71ID:PknKU9DC awesome-react-hooksとかawesome-reduxとか思いつくのはだいたいあるキガス
170デフォルトの名無しさん
2021/09/27(月) 11:55:16.25ID:DYuWVLW4 JSだとホットリロードが機能するけどTSだと機能しないのだけど
これはTSの自動トランスパイルが機能してないってことですかね?
これはTSの自動トランスパイルが機能してないってことですかね?
171デフォルトの名無しさん
2021/09/27(月) 11:57:06.64ID:ZRFQgXut >>170
?
?
172デフォルトの名無しさん
2021/09/27(月) 12:09:11.49ID:DYuWVLW4 再起動したら直ったわ
173デフォルトの名無しさん
2021/09/28(火) 17:29:52.40ID:s3NqJ5bC reactのコンポーネントにクリックとかのイベント処理を付ける時って、onClick={clickHandler}みたいに書くじゃない
このclickHandlerの処理の中でコンポーネントに渡してある属性を参照したいときってどう書くんだ?
clickHandlerを関数を返す関数にして、
clickHandler =(props)=> () =>{‥}
コンポーネントにはonClick={clickHandler(props)}ってやればできるんだけど、これだとuseCallbackが使えなくて毎回レンダリングし直されちゃうんだよな
event.targetはネイティブのDOMの情報しか載ってこないし、誰か教えてえろいひと
このclickHandlerの処理の中でコンポーネントに渡してある属性を参照したいときってどう書くんだ?
clickHandlerを関数を返す関数にして、
clickHandler =(props)=> () =>{‥}
コンポーネントにはonClick={clickHandler(props)}ってやればできるんだけど、これだとuseCallbackが使えなくて毎回レンダリングし直されちゃうんだよな
event.targetはネイティブのDOMの情報しか載ってこないし、誰か教えてえろいひと
174デフォルトの名無しさん
2021/09/28(火) 18:22:37.60ID:Tl6wB3bi >>173
JSの基本機能にクロージャーというのがあってだな
なんと!clickHandlerの中から外(つまりコンポーネント)の変数を参照できるんだよ!
const clickHandler = () => {
console.log(props.xxx)
}
useCallback使ってるならdepsに並べる
const clickHandler = useCallback(() => {
console.log(props.xxx)
}, [props.xxx])
JSの基本機能にクロージャーというのがあってだな
なんと!clickHandlerの中から外(つまりコンポーネント)の変数を参照できるんだよ!
const clickHandler = () => {
console.log(props.xxx)
}
useCallback使ってるならdepsに並べる
const clickHandler = useCallback(() => {
console.log(props.xxx)
}, [props.xxx])
175デフォルトの名無しさん
2021/09/28(火) 21:49:04.22ID:s3NqJ5bC >>174
変数名をpropsにしたのが紛らわしかったかもしれんが
{arr.map((v)=>{
<ComponentA key=v.Id onClick={clickHandler} />
})}
みたいなことをやってるときにclickHandlerの処理の中でvを参照するにはどうしたらいいのかな?っていうのが聞きたいことなんだが、クロージャ?にあたるのか?
分かりにくくてスマン
変数名をpropsにしたのが紛らわしかったかもしれんが
{arr.map((v)=>{
<ComponentA key=v.Id onClick={clickHandler} />
})}
みたいなことをやってるときにclickHandlerの処理の中でvを参照するにはどうしたらいいのかな?っていうのが聞きたいことなんだが、クロージャ?にあたるのか?
分かりにくくてスマン
176デフォルトの名無しさん
2021/09/28(火) 22:23:47.81ID:yTRBGUiM memo 化したコンポーネントで ComponentA をラップし props と clickHandler を受け取って onClick={() => clickHandler(props)} とする
177デフォルトの名無しさん
2021/09/28(火) 22:25:37.88ID:84Zwu3SC178デフォルトの名無しさん
2021/09/28(火) 23:04:47.64ID:s3NqJ5bC179デフォルトの名無しさん
2021/09/28(火) 23:30:14.37ID:pKLoFE48 >>178
input等のdomにマップされるコンポーネントに直接渡す関数をuseCallbackする必要はない
input等のdomにマップされるコンポーネントに直接渡す関数をuseCallbackする必要はない
180デフォルトの名無しさん
2021/09/29(水) 23:01:40.05ID:lzBphG+K181デフォルトの名無しさん
2021/09/29(水) 23:13:02.36ID:VRCLPgDh182デフォルトの名無しさん
2021/09/30(木) 12:42:41.23ID:TAcHeIwJ componentAが自作かそうでないかに関わらず言ってることは同じだわな
どちらも子コンポーネント内で実装しないといけないことを言ってるんだから
どちらも子コンポーネント内で実装しないといけないことを言ってるんだから
183デフォルトの名無しさん
2021/09/30(木) 14:23:21.02ID:uxDakMZz 質問主はどう見ても>>155なんだから自作前提でよくて余計なことは省いた方がいいと思うね
184デフォルトの名無しさん
2021/10/03(日) 21:36:14.94ID:9xTT9AKy material-uiのspeed dialをネストしたいんだけど無理かな?speed dial actionの代わりにspeed dialそのものを子に持ちたい
185デフォルトの名無しさん
2021/10/19(火) 10:58:01.20ID:I/uBXkGk VSCodeでsassファイル保存時に自動フォーマット掛けたいですけどそれ出来る拡張ありますか?
186デフォルトの名無しさん
2021/10/20(水) 21:47:12.22ID:VGECjsMp187デフォルトの名無しさん
2021/11/09(火) 10:45:02.06ID:tf9NUtHx イベントと副作用フックどっちでもいい時に、どちらを優先して使うほうがより良いとかってある?
keyを入力するテキスト入力欄、valueを表示するテキスト表示欄がある
keyが変化するとデータを鯖から取ってきてvalueに設定したい
副作用フックでkeyを監視するか、key入力欄の変更通知イベントを使うか、どっちでもいいけど、どちらかというとどっちが良いか?
keyを入力するテキスト入力欄、valueを表示するテキスト表示欄がある
keyが変化するとデータを鯖から取ってきてvalueに設定したい
副作用フックでkeyを監視するか、key入力欄の変更通知イベントを使うか、どっちでもいいけど、どちらかというとどっちが良いか?
188デフォルトの名無しさん
2021/11/09(火) 11:13:14.15ID:ppTxKkYh 入力欄の変更イベントで十分だろ
そしてuseDefferedValue経由の値でサーバを叩く
そしてuseDefferedValue経由の値でサーバを叩く
189デフォルトの名無しさん
2021/11/17(水) 09:45:52.91ID:gjeYELEc 素朴な疑問
状態を持ったり副作用を持ったりするコンポーネントってぶっちゃけclassのほうが可読性いいよね?
フックは書く時は楽だけど後で見るとナンジャコラ?ってなる
状態を持ったり副作用を持ったりするコンポーネントってぶっちゃけclassのほうが可読性いいよね?
フックは書く時は楽だけど後で見るとナンジャコラ?ってなる
190デフォルトの名無しさん
2021/11/17(水) 10:40:45.63ID:yi3gjxGP >>110を読んでないってわかんだよね
191デフォルトの名無しさん
2021/11/17(水) 11:55:31.75ID:gjeYELEc 例えばの話、コンポーネントの初期化処理と終了処理はどこでやるの?って新人の疑問に対して
classコンポーネントなら
見たまんまcomponentDidMount、componentWillUnmountだよ
このメソッドを用意しとくとこのコンポーネントを持って管理してるフレームワークさんが、
いい感じのタイミングで呼び出してくれるよ
こう教えてやれば、直感ですぐさまなるほど、と理解して貰える
しかし関数コンポーネントでは純粋関数とは何か、副作用とは何か、フックとは何か、useEffectとは何か、useEffectの引数は何か、引数の戻りの関数は何か
ということをよく理解して頭の中で読み替えないといけない
なのでじっくり時間をかけて教えても、それでも理解するには時間を要する
関数コンポーネントはこんなのが無数にある
だから理解しにくい
タイピングの文字数は減るので書くのは楽だ、ということは確かだが
理解しやすさで言うと、ちょっとね、、、
classコンポーネントなら
見たまんまcomponentDidMount、componentWillUnmountだよ
このメソッドを用意しとくとこのコンポーネントを持って管理してるフレームワークさんが、
いい感じのタイミングで呼び出してくれるよ
こう教えてやれば、直感ですぐさまなるほど、と理解して貰える
しかし関数コンポーネントでは純粋関数とは何か、副作用とは何か、フックとは何か、useEffectとは何か、useEffectの引数は何か、引数の戻りの関数は何か
ということをよく理解して頭の中で読み替えないといけない
なのでじっくり時間をかけて教えても、それでも理解するには時間を要する
関数コンポーネントはこんなのが無数にある
だから理解しにくい
タイピングの文字数は減るので書くのは楽だ、ということは確かだが
理解しやすさで言うと、ちょっとね、、、
192デフォルトの名無しさん
2021/11/17(水) 16:48:12.54ID:QzSwOiy0 宣言的なReactを命令的に読み替えるんじゃ永遠に理解できないだろうな
そういう教え方をされる新人がかわいそうだし同情しかない
そういう教え方をされる新人がかわいそうだし同情しかない
193デフォルトの名無しさん
2021/11/17(水) 20:00:29.63ID:h3betjKK reactでいくつかのファイルがあって保存(ctrl+s)すると
コンパイルしてくれるファイルとしてくれないファイルがあるんだけど違いってなんですか。。。
コンパイルしてくれるファイルとしてくれないファイルがあるんだけど違いってなんですか。。。
194デフォルトの名無しさん
2021/11/17(水) 20:55:02.32ID:Wtj2hevs 使ってるide (vscodeとか) のスレで聞け
195デフォルトの名無しさん
2021/11/17(水) 21:47:40.34ID:h3+MjybB >>191
クラスって何?メソッドって何?継承って何?
クラスって何?メソッドって何?継承って何?
196デフォルトの名無しさん
2021/11/17(水) 22:25:06.52ID:N4+deCyE >>191
クラスだとマウント/アンマウントじゃなくてpropsが変わるたびに開始処理終了処理するってなると全然違うこと教えなきゃダメだろ
クラスだとマウント/アンマウントじゃなくてpropsが変わるたびに開始処理終了処理するってなると全然違うこと教えなきゃダメだろ
197デフォルトの名無しさん
2021/11/18(木) 00:22:44.81ID:3dlOBCKi レアクトは宣言的だけど実用的なアプリケーションは全て有状態の手続きの塊じゃん?
ということはレアクトと「この不都合な現実世界」を上手いこと切り離して管理する方法が必要なんだよ
それがオブジェクト指向ってわけでね
関数コンポーネントは分離すべき手続きと宣言が渾然一体となっていてわかりにくい
オブジェクト指向を使えば
オブジェクトとオブジェクトを描画する純粋関数に分離することは容易い
それがrenderメソッドな訳だな
ということはレアクトと「この不都合な現実世界」を上手いこと切り離して管理する方法が必要なんだよ
それがオブジェクト指向ってわけでね
関数コンポーネントは分離すべき手続きと宣言が渾然一体となっていてわかりにくい
オブジェクト指向を使えば
オブジェクトとオブジェクトを描画する純粋関数に分離することは容易い
それがrenderメソッドな訳だな
198デフォルトの名無しさん
2021/11/18(木) 00:44:06.97ID:aYAbIgl/ レアクト
199デフォルトの名無しさん
2021/11/18(木) 00:47:56.13ID:F8B2t3Oi また知恵遅れクラス信者か
この流れ何度目だよw
この流れ何度目だよw
200デフォルトの名無しさん
2021/11/18(木) 01:15:46.87ID:3dlOBCKi 関数が優位に立つのはDOMのレンダリングだけ
状態管理と手続きという不可避の現実はオブジェクト指向で処理したほうがいい
関数は状態が無いものだけを扱うべき
状態管理と手続きという不可避の現実はオブジェクト指向で処理したほうがいい
関数は状態が無いものだけを扱うべき
201デフォルトの名無しさん
2021/11/18(木) 07:26:11.67ID:sAyjJzQx 状態や手続きを分離する方法はオブジェクトだけじゃない
モナドもそれだしReactの場合は代数的作用が背景にある
モナドもそれだしReactの場合は代数的作用が背景にある
レスを投稿する
ニュース
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★4 [BFU★]
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 【音楽】『日本レコード大賞』各賞発表! 大賞候補にILLIT、M!LK、ふるっぱー、幾田りら、アイナ、ミセスら… 作詩賞は指原莉乃 [冬月記者★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
