>>117
> この関数は関数コンポーネントの意味
違う
ifやforなどの制御構造の内側から呼び出すなということ
要するに関数コンポーネントの呼び出しごとにhookが実行されたりされなかったりしてはいけない
なので?:や&&などと組み合わせるのもダメ
React と React Native のスレ
119デフォルトの名無しさん
2021/08/26(木) 16:38:00.65ID:gityixOl120デフォルトの名無しさん
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の場合は代数的作用が背景にある
202デフォルトの名無しさん
2021/11/18(木) 07:56:21.14ID:JMkvun5L >>70辺りからの話を繰り返してるな
高々200しかレスがない過疎スレなんだから一通り読んでから書けばいいのに
高々200しかレスがない過疎スレなんだから一通り読んでから書けばいいのに
203デフォルトの名無しさん
2021/11/18(木) 08:07:20.27ID:3dlOBCKi204デフォルトの名無しさん
2021/11/18(木) 08:56:13.25ID:O/tzCGdy それってオブジェクト指向を学んでから進歩してませんって自己紹介にすぎなくてオブジェクト指向がしっくりこなかったstaticおじさんと同じなんだよな
205デフォルトの名無しさん
2021/11/18(木) 10:18:03.07ID:5if92K6E 理解しやすさ簡単さはオブジェクト指向から学んできたおじさんと関数型から学んできた若者で違うから議論してもしゃーない
それよりReact18がベータになったことだしConcurrent Renderingを知るべき
そしたら行儀の悪いクラスコンポーネントがReactにとって不都合だとわかるし関数コンポーネントで行儀の悪いコードを書きにくくしてることもわかるだろう
それよりReact18がベータになったことだしConcurrent Renderingを知るべき
そしたら行儀の悪いクラスコンポーネントがReactにとって不都合だとわかるし関数コンポーネントで行儀の悪いコードを書きにくくしてることもわかるだろう
206デフォルトの名無しさん
2021/11/18(木) 10:23:00.26ID:5if92K6E Concurrent Renderingでは1回のレンダリングでrenderメソッドや関数コンポーネントが複数回呼ばれることが起こるようになる
いわゆる再レンダリングで複数回じゃなくて例えばdidMountが呼ばれる前にrenderが何度も呼ばれることが起きるようになる
だからrenderメソッドの中でthis.xxxを更新するなどの副作用があると破綻する
それは元々やるべきことじゃなくて行儀か悪いだけなんだがクラスコンポーネントでは書こうと思えば簡単に書けてしまう
そういうバグを検出するために前から用意されてたのがStrictモードだがあまり使われてるのを見たことはないな
クラスコンポーネントだとthis.stateはthis.setStatateを通じてReactが管理してるがその他はクラスコンポーネント任せで野放しになってるのがReact側から見た問題
そこで導入されたのが関数コンポーネントで状態や副作用の扱いが制限されて簡単に見えないのは意図的なんだよね
いわゆる再レンダリングで複数回じゃなくて例えばdidMountが呼ばれる前にrenderが何度も呼ばれることが起きるようになる
だからrenderメソッドの中でthis.xxxを更新するなどの副作用があると破綻する
それは元々やるべきことじゃなくて行儀か悪いだけなんだがクラスコンポーネントでは書こうと思えば簡単に書けてしまう
そういうバグを検出するために前から用意されてたのがStrictモードだがあまり使われてるのを見たことはないな
クラスコンポーネントだとthis.stateはthis.setStatateを通じてReactが管理してるがその他はクラスコンポーネント任せで野放しになってるのがReact側から見た問題
そこで導入されたのが関数コンポーネントで状態や副作用の扱いが制限されて簡単に見えないのは意図的なんだよね
207デフォルトの名無しさん
2021/11/18(木) 10:29:08.68ID:5if92K6E 将来のReactではマウント・アンマウントも複数回行われるようになる
これもコンポーネントのインスタンスが変わる場合の話じゃなくて一つのコンポーネントインスタンスが何度もマウント・アンマウントを繰り返すようになる
クラスコンポーネントではdidMount/willUnmountか同じthisの上で何度も呼ばれることになるんだろう
だから従来のライフサイクルという考え方だと破綻する
useEffectは以前からライフサイクルと考えてはいけないと言われてるしそのためにuseEffectのコールバックは冪等にすべきという原則もある
React18ではそれによって起きる問題を検出するためにStrict Effectモードが増える
こうなるとuseEffectを従来の初期化処理・終了処理に読み替えて理解させるのは単純に間違いということになる
どちらが理解しやすいかという次元の話じゃないんだよね
これもコンポーネントのインスタンスが変わる場合の話じゃなくて一つのコンポーネントインスタンスが何度もマウント・アンマウントを繰り返すようになる
クラスコンポーネントではdidMount/willUnmountか同じthisの上で何度も呼ばれることになるんだろう
だから従来のライフサイクルという考え方だと破綻する
useEffectは以前からライフサイクルと考えてはいけないと言われてるしそのためにuseEffectのコールバックは冪等にすべきという原則もある
React18ではそれによって起きる問題を検出するためにStrict Effectモードが増える
こうなるとuseEffectを従来の初期化処理・終了処理に読み替えて理解させるのは単純に間違いということになる
どちらが理解しやすいかという次元の話じゃないんだよね
208デフォルトの名無しさん
2021/11/18(木) 13:11:55.12ID:3dlOBCKi それはuseStateを使うかlet変数宣言を使うかってのと同じこと
行儀の悪いコードはファンクショナルでも好きなだけ書ける
ようするにプログラマの腕とモラルの問題
ファンクショナルがクラスに対して優位と示す証拠ではないな
Reactが将来のバージョンアップでライフタイムサイクルの仕様変更となるなら
新しいライフタイムサイクルに適応したライフタイムサイクルメソッドを設ければいいだけ
そしてその方がuseEffectより遥かに直感的で理解しやすくなるだろう
実際どんな名称になるかはレアクトマニアでない俺は知らんがおそらくは
initializeComponent
componentDidMount
componentWillUnmount
disposeComponent
この辺りだろう
なんてわかりやすいんだ!
そもそも仕様変更されるからファンクショナルのほうがいいんだーって論理破綻しとるよな
仕様変更されたらそれに合わせてクラスコンポーネントも進化するのが当たり前
進化しないならそれはベンダーの怠慢
行儀の悪いコードはファンクショナルでも好きなだけ書ける
ようするにプログラマの腕とモラルの問題
ファンクショナルがクラスに対して優位と示す証拠ではないな
Reactが将来のバージョンアップでライフタイムサイクルの仕様変更となるなら
新しいライフタイムサイクルに適応したライフタイムサイクルメソッドを設ければいいだけ
そしてその方がuseEffectより遥かに直感的で理解しやすくなるだろう
実際どんな名称になるかはレアクトマニアでない俺は知らんがおそらくは
initializeComponent
componentDidMount
componentWillUnmount
disposeComponent
この辺りだろう
なんてわかりやすいんだ!
そもそも仕様変更されるからファンクショナルのほうがいいんだーって論理破綻しとるよな
仕様変更されたらそれに合わせてクラスコンポーネントも進化するのが当たり前
進化しないならそれはベンダーの怠慢
209デフォルトの名無しさん
2021/11/18(木) 14:18:18.92ID:I+5yMFIL ライフサイクルが変わってもuseEffectは影響を受けない
なぜならライフサイクルを扱う機能ではないから
ライフサイクルという考え方そのものを改めたのが今の関数コンポーネントとhookなんだよ
だからライフサイクルメソッドを増やせばいいなんて話ではないんだが伝わらないんだろうなw
まぁ、取り残されたければそれでいいんじゃない?
ここで吠えてもReactチームがクラスコンポーネントを進化させることはないよ
本気で主張したけりゃここに行きな
https://github.com/reactwg/react-18/discussions
なぜならライフサイクルを扱う機能ではないから
ライフサイクルという考え方そのものを改めたのが今の関数コンポーネントとhookなんだよ
だからライフサイクルメソッドを増やせばいいなんて話ではないんだが伝わらないんだろうなw
まぁ、取り残されたければそれでいいんじゃない?
ここで吠えてもReactチームがクラスコンポーネントを進化させることはないよ
本気で主張したけりゃここに行きな
https://github.com/reactwg/react-18/discussions
210デフォルトの名無しさん
2021/11/18(木) 15:19:55.65ID:3dlOBCKi 本来ライフサイクルメソッドではないuseEffectを、ライフサイクル目的で使わざるを得ない、という状況が非常にバッドだよねぇ
APIの目的外利用ってバッドノウハウとか、黒魔術って呼ばれてるものだよ
最近はそういうの随分と減ったと思ったけど、ファンクショナルコンポーネントでは現役なんだなぁ
useEffectはライフサイクルじゃない!ってんなら
useInitializer
useFainalizer
この2つのフックはオフィシャルに提供した方がいいだろね
それをしないというのはベンダーの怠慢でしかないよ
そうすれば、useEffectの第二引数に謎の空配列を渡すと、お掃除する時にだけ呼ばれます!
なーんて回りくどい、明快さのかけらもない、暗黙の了解はもう、要らなくなるわけだ
冷静に考えてわかりにくいだろ? 空配列ってさ
APIの目的外利用ってバッドノウハウとか、黒魔術って呼ばれてるものだよ
最近はそういうの随分と減ったと思ったけど、ファンクショナルコンポーネントでは現役なんだなぁ
useEffectはライフサイクルじゃない!ってんなら
useInitializer
useFainalizer
この2つのフックはオフィシャルに提供した方がいいだろね
それをしないというのはベンダーの怠慢でしかないよ
そうすれば、useEffectの第二引数に謎の空配列を渡すと、お掃除する時にだけ呼ばれます!
なーんて回りくどい、明快さのかけらもない、暗黙の了解はもう、要らなくなるわけだ
冷静に考えてわかりにくいだろ? 空配列ってさ
211デフォルトの名無しさん
2021/11/18(木) 16:20:58.58ID:yPpHDEE/ 本当に化石のような石頭だな
現場でもさぞかし迷惑な存在だろう
ライフサイクルって考え方をしないんだからuseInitializerもuseFainalizerも不要なんだよ
間違った理解
コンポーネントがマウントされたら一度だけxxを実行する
コンポーネントがアンマウントされたら一度だけyyを実行する
(やや)正しい理解
コンポーネントがマウントされてる間はzzの状態を維持する
zzの状態ってのはイベントをリッスンしてる状態とかwebsocketをサブスクイブしてる状態とか色々
useEffectのコールバックがそういう「状態を維持する」ものって考えると必然的に冪等にしなきゃいけなくなりConcurrent Renderingで繰り返し呼ばれても大丈夫になる
実際はマウントされてる間とかってのをもっと一般化して
正しい理解
依存配列が変わらない間は状態を維持する
と考える
空配列は変わりようがないから結果的にマウントしてる間はずっと状態を維持するってことになる
だからね、ライフサイクルって考え方がもはや不要で間違ってるんだよ
いつまでも古い考えに固執しないでちゃんと勉強して?
現場でもさぞかし迷惑な存在だろう
ライフサイクルって考え方をしないんだからuseInitializerもuseFainalizerも不要なんだよ
間違った理解
コンポーネントがマウントされたら一度だけxxを実行する
コンポーネントがアンマウントされたら一度だけyyを実行する
(やや)正しい理解
コンポーネントがマウントされてる間はzzの状態を維持する
zzの状態ってのはイベントをリッスンしてる状態とかwebsocketをサブスクイブしてる状態とか色々
useEffectのコールバックがそういう「状態を維持する」ものって考えると必然的に冪等にしなきゃいけなくなりConcurrent Renderingで繰り返し呼ばれても大丈夫になる
実際はマウントされてる間とかってのをもっと一般化して
正しい理解
依存配列が変わらない間は状態を維持する
と考える
空配列は変わりようがないから結果的にマウントしてる間はずっと状態を維持するってことになる
だからね、ライフサイクルって考え方がもはや不要で間違ってるんだよ
いつまでも古い考えに固執しないでちゃんと勉強して?
212デフォルトの名無しさん
2021/11/18(木) 16:43:19.19ID:3dlOBCKi >>211
で、それは手続きだらけの現実世界には対処不能、と
ファンクショナル界隈の連中って、なんでか理想論ばっかなんだよなぁ
コンポーネント初期化時に一回、何か処理をしたい、って自然な要求に直接答える術がない
useEffectという本来違う目的のためにあるものを、使うしかない
これがファンクショナルの限界
例えばコンポーネント初期化時にログを追記したい、とかな
「状態維持する」って考えじゃ実現できねえ処理なんざ、世の中にはいくらでもあるんだ
で、それは手続きだらけの現実世界には対処不能、と
ファンクショナル界隈の連中って、なんでか理想論ばっかなんだよなぁ
コンポーネント初期化時に一回、何か処理をしたい、って自然な要求に直接答える術がない
useEffectという本来違う目的のためにあるものを、使うしかない
これがファンクショナルの限界
例えばコンポーネント初期化時にログを追記したい、とかな
「状態維持する」って考えじゃ実現できねえ処理なんざ、世の中にはいくらでもあるんだ
213デフォルトの名無しさん
2021/11/18(木) 17:09:36.68ID:tb6GSOae ファンクショナルの限界じゃなくてお前の限界な
214デフォルトの名無しさん
2021/11/18(木) 18:20:41.19ID:te8WLqUU うわあ・・・
ID:3dlOBCKi
ttp://hissi.org/read.php/tech/20211118/M2RsT0JDS2k.html
ID:3dlOBCKi
ttp://hissi.org/read.php/tech/20211118/M2RsT0JDS2k.html
215デフォルトの名無しさん
2021/11/18(木) 18:34:14.46ID:3dlOBCKi216デフォルトの名無しさん
2021/11/18(木) 19:03:14.82ID:wacBz6NM 使う人が増えると残念な人も増えるいつもの光景
217デフォルトの名無しさん
2021/11/18(木) 22:26:22.51ID:fTWvydC+ こういう残念な人が出てくるのは公式サイトのドキュメンが悪いせいもある
元がクラスコンポーネント時代に作られてhooksは後付だからuseEffectがライフサイクルで説明されてしまってる
作り直してる新しいドキュメントでは最初からhooksで説明されるから勘違いおじさんが撲滅されるといいな
元がクラスコンポーネント時代に作られてhooksは後付だからuseEffectがライフサイクルで説明されてしまってる
作り直してる新しいドキュメントでは最初からhooksで説明されるから勘違いおじさんが撲滅されるといいな
218デフォルトの名無しさん
2021/11/19(金) 09:42:11.48ID:J0mGbVeO >>194
webpack-dev-server知らんのは流石に論外やろ
webpack-dev-server知らんのは流石に論外やろ
219デフォルトの名無しさん
2021/11/21(日) 14:16:11.00ID:knw1x1gk 関数型のテクニックを使ってるってだけで、やってることはただのオブジェクト指向なんだよな
所詮は構文の違いでしかない
属性を使うかuseStateを使うか
Reactにコールバックをどうやって教えるか
それだけだ
オブジェクト指向ユーザーは、素直にクラスを使ってそれを実装する
関数型ユーザーはやってること同じなんだが、イキがってフックとか使いだして、読み手を混乱させる
JavaScriptの黎明期にプロトタイプベースのオブジェクト指向を使うか、クロージャベースのオブジェクト指向を使うかで揉めてたのと、同じ構図だ
クロージャは関数型で発展したツールだが、実現したい事は結局、どっちもオブジェクト指向だった
所詮は構文の違いでしかない
属性を使うかuseStateを使うか
Reactにコールバックをどうやって教えるか
それだけだ
オブジェクト指向ユーザーは、素直にクラスを使ってそれを実装する
関数型ユーザーはやってること同じなんだが、イキがってフックとか使いだして、読み手を混乱させる
JavaScriptの黎明期にプロトタイプベースのオブジェクト指向を使うか、クロージャベースのオブジェクト指向を使うかで揉めてたのと、同じ構図だ
クロージャは関数型で発展したツールだが、実現したい事は結局、どっちもオブジェクト指向だった
220デフォルトの名無しさん
2021/11/21(日) 17:48:46.47ID:UWSF5n1L お前がそう思うんならそうなんだろう お前ん中ではな
221デフォルトの名無しさん
2021/11/21(日) 17:55:48.39ID:Wm1mwUDt オブジェクト指向のテクニックを使ってるだけでやってることはただの構造化なんだよな
所詮は構文の違いでしかない
こうですか
最後は全部ただの機械語ですしね!
所詮は構文の違いでしかない
こうですか
最後は全部ただの機械語ですしね!
222デフォルトの名無しさん
2021/11/21(日) 20:40:46.53ID:1yBKup76 例えばさ、
ちょっと複雑なコンポーネントを作ろうぜ、ってなったら、誰だってプログラムを分割するだろう?
function useMyForm () {
// 略::フックを使った汚いコード
return { /* 美しいオブジェクト */ }
}
function MyForm () {
const f = useMyForm()
return <…..略
}
useMyFormは何をやってるかというと、reactのフックを使った汚いコードを隠蔽して、
代わりにエレガントな形を持ったオブジェクトを生成して返してるんだね
詳細をカプセル化して、外から見て美しいオブジェクトを作る
これはオブジェクト指向の基本にして、真髄
ファンクショナルのツールを使ってるだけで、やってることはオブジェクト指向、とはこういうこと
それで、賢い人はこの匿名のオブジェクトに名前を付けて、さらに理解を助けるわけだ
例えばclass MyFormBehaivorとかね
で、MyFormはMyFormBehaviorを継承してrenderを付けるだけ、だな、とすぐに気付く筈だね
結局さ、同じなんだよ、やってることが
同じなら、見た目に読みやすい方がいいに決まってる
で、読みやすいのは断然、オブジェクト指向
QED
ちょっと複雑なコンポーネントを作ろうぜ、ってなったら、誰だってプログラムを分割するだろう?
function useMyForm () {
// 略::フックを使った汚いコード
return { /* 美しいオブジェクト */ }
}
function MyForm () {
const f = useMyForm()
return <…..略
}
useMyFormは何をやってるかというと、reactのフックを使った汚いコードを隠蔽して、
代わりにエレガントな形を持ったオブジェクトを生成して返してるんだね
詳細をカプセル化して、外から見て美しいオブジェクトを作る
これはオブジェクト指向の基本にして、真髄
ファンクショナルのツールを使ってるだけで、やってることはオブジェクト指向、とはこういうこと
それで、賢い人はこの匿名のオブジェクトに名前を付けて、さらに理解を助けるわけだ
例えばclass MyFormBehaivorとかね
で、MyFormはMyFormBehaviorを継承してrenderを付けるだけ、だな、とすぐに気付く筈だね
結局さ、同じなんだよ、やってることが
同じなら、見た目に読みやすい方がいいに決まってる
で、読みやすいのは断然、オブジェクト指向
QED
223デフォルトの名無しさん
2021/11/21(日) 20:55:13.47ID:SJq+O3t2 しつこい
224デフォルトの名無しさん
2021/11/21(日) 21:04:01.25ID:5qd0Nwtv ふむ、反論ができなくなったのかな?
225デフォルトの名無しさん
2021/11/21(日) 21:16:31.74ID:zzbPLRQo 石頭の老害相手に反論しても無駄
226デフォルトの名無しさん
2021/11/21(日) 22:35:19.11ID:UWSF5n1L 馬鹿は論破できない
227デフォルトの名無しさん
2021/11/22(月) 10:00:05.25ID:HTg16b0P 今どきfunctionって書くか?
228デフォルトの名無しさん
2021/11/22(月) 14:12:56.45ID:yxcpONXb 書かない
229デフォルトの名無しさん
2021/12/03(金) 10:05:55.29ID:OvhoAu9V ボタン連打するけしからん奴対策の定番ライブラリ教えてよ
送信フラグ管理はもう疲れた
あ、いちおクロスプラットフォームのライブラリでヨロ
送信フラグ管理はもう疲れた
あ、いちおクロスプラットフォームのライブラリでヨロ
230デフォルトの名無しさん
2021/12/03(金) 16:35:10.63ID:ZR9gqQ7Z ボタン押下で実行されるのをステートの値をtrueにするのみのsetAnyState(true)とかにして
実処理を
useEffect(()=>{if(anyState){
// 実際したい処理
setAnyState(false)
}},[anyState])
にしとけば連打されても大丈夫じゃね?
実処理を
useEffect(()=>{if(anyState){
// 実際したい処理
setAnyState(false)
}},[anyState])
にしとけば連打されても大丈夫じゃね?
231デフォルトの名無しさん
2021/12/03(金) 18:25:47.16ID:C14FVshC ボタンが押されたらボタンをdisabledにすればいいじゃん
232デフォルトの名無しさん
2021/12/03(金) 19:41:18.43ID:L4TUqIiQ わろた
233デフォルトの名無しさん
2021/12/03(金) 19:41:36.25ID:50htZSL3 それだとめっちゃ高速にダブルクリックした場合多分イベント2回来る場合ある
234デフォルトの名無しさん
2021/12/03(金) 20:19:23.32ID:mMKMUGdN JavaScriptはシングルスレッド
235デフォルトの名無しさん
2021/12/06(月) 19:49:21.16ID:56/uA2M5 function useMyHook() {
const [a, setA] = useState(0);
const [b, setB] = useState(0);
return {
foo: () => a+b,
bar: () => a-b,
};
}
function MyComp () {
const myhook = useMyHook();
useEffect(() => {
if (myhook.foo() > 100 && myhook.bar() < 20)
hoge();
}
}, [???]);
return <Aaaaa />;
???はどう書くのが正解?
推移的に依存してるのはa, bだがa、bには直接アクセスできない
const [a, setA] = useState(0);
const [b, setB] = useState(0);
return {
foo: () => a+b,
bar: () => a-b,
};
}
function MyComp () {
const myhook = useMyHook();
useEffect(() => {
if (myhook.foo() > 100 && myhook.bar() < 20)
hoge();
}
}, [???]);
return <Aaaaa />;
???はどう書くのが正解?
推移的に依存してるのはa, bだがa、bには直接アクセスできない
236デフォルトの名無しさん
2021/12/06(月) 20:06:59.76ID:4QzxG6KH useMyEffectもuseMyHookでやるべきじゃねーの
それができないならuseMyEffectを
foo: useCallback(() => a+b, [a, b]),
bar: useCallback(() => a-b, [a, b])
とすれば[???]は
[myhook.foo, myhook.bar]
それができないならuseMyEffectを
foo: useCallback(() => a+b, [a, b]),
bar: useCallback(() => a-b, [a, b])
とすれば[???]は
[myhook.foo, myhook.bar]
237デフォルトの名無しさん
2021/12/06(月) 20:07:50.83ID:4QzxG6KH238デフォルトの名無しさん
2021/12/06(月) 20:11:27.69ID:4QzxG6KH239デフォルトの名無しさん
2021/12/06(月) 22:16:00.54ID:zN0DCcOz >>236
thank you.
thank you.
240デフォルトの名無しさん
2021/12/08(水) 14:16:37.56ID:/W89KInL function MyComp () {
const vm = useMyCompViewModel();
return <略 />;
}
MyCompのユニットテストする時ってどうしてる?
つまりuseMyCompViewModelをインジェクトしたい時
const vm = useMyCompViewModel();
return <略 />;
}
MyCompのユニットテストする時ってどうしてる?
つまりuseMyCompViewModelをインジェクトしたい時
241デフォルトの名無しさん
2021/12/08(水) 15:51:56.43ID:5zVi58LJ242デフォルトの名無しさん
2021/12/08(水) 19:22:47.15ID:/W89KInL243デフォルトの名無しさん
2021/12/08(水) 21:33:33.67ID:Rfcvtfm3 テストだけならこんなんで十分じゃね
function MyComp (props) {
const useViewModel = props.useMyCompViewModel || useMyCompViewModel
const vm = useViewModel();
return <略 />;
}
function MyComp (props) {
const useViewModel = props.useMyCompViewModel || useMyCompViewModel
const vm = useViewModel();
return <略 />;
}
244デフォルトの名無しさん
2021/12/08(水) 21:48:07.68ID:lkzI+wPD 経年劣化に耐える ReactComponent の書き方
https://zenn.dev/takepepe/articles/howto-withstand-aging-react-component
https://zenn.dev/takepepe/articles/howto-withstand-aging-react-component
245デフォルトの名無しさん
2021/12/08(水) 22:23:21.01ID:SYjhTw/G246デフォルトの名無しさん
2021/12/11(土) 11:45:52.40ID:zttGewLv サードパーティコンポーネントが状態や副作用を持っているがこれを除去してステートレスにしたい
どうすればいい?ソースコードを書き換えるのは無しで
どうすればいい?ソースコードを書き換えるのは無しで
247デフォルトの名無しさん
2021/12/11(土) 11:52:28.47ID:GrxR7SwR プルリクエスト
248デフォルトの名無しさん
2021/12/11(土) 12:05:31.62ID:zttGewLv function IWantEasyTestableComponent(props) {
return (<View>
<FackingStatefullComponent foo={props.foo} />
<MyAwesomeStatelessComponent {…props} />
</View>);
}
こういうの、どうすりゃいいんだ?
野良ライブラリはどれもこれもアマチュアが好き勝手作ってるから、利便性はともかく品質のムラが大きすぎる
できれば使いたく無いが、使う前提で予算と工程を組まれる
オープンソースのダークサイドやね
return (<View>
<FackingStatefullComponent foo={props.foo} />
<MyAwesomeStatelessComponent {…props} />
</View>);
}
こういうの、どうすりゃいいんだ?
野良ライブラリはどれもこれもアマチュアが好き勝手作ってるから、利便性はともかく品質のムラが大きすぎる
できれば使いたく無いが、使う前提で予算と工程を組まれる
オープンソースのダークサイドやね
249デフォルトの名無しさん
2021/12/11(土) 12:21:22.59ID:GrxR7SwR jest.mock('path/to/FackingStatefullComponent')
250デフォルトの名無しさん
2021/12/11(土) 12:27:06.61ID:RI4P88iz >>249
ソースコードの書き換えとどう違うんだそれ?
ソースコードの書き換えとどう違うんだそれ?
251デフォルトの名無しさん
2021/12/11(土) 12:44:03.50ID:g9v4y15i 依存関係をインターフェース等で明示的に分離してインジェクションするポイントを作るという考え方ではなく
モジュール自体を上書きしてしまうことで無理やりインジェクションするということか
違和感が強いがこれがJavaScriptの文化と思って受け入れるしかないか
モジュール自体を上書きしてしまうことで無理やりインジェクションするということか
違和感が強いがこれがJavaScriptの文化と思って受け入れるしかないか
252デフォルトの名無しさん
2021/12/12(日) 21:59:15.39ID:wsjthnMX LogBox邪魔すぎる
機能OFFにできんのかコレ
機能OFFにできんのかコレ
253デフォルトの名無しさん
2021/12/20(月) 09:27:19.20ID:vskoYLeQ 状態、副作用は親コンポーネントに持たせるべきか
子コンポーネントに持たせるべきか
子コンポーネントに持たせるべきか
254デフォルトの名無しさん
2021/12/20(月) 17:18:10.57ID:hUMHHR9z コンポーネントの用途に依る
基本的にはコンポーネントで独立してる方がいいと思う
ちゃんと精査すれば全体で管理しなきゃいけない状態ってそんなに多くないはず
基本的にはコンポーネントで独立してる方がいいと思う
ちゃんと精査すれば全体で管理しなきゃいけない状態ってそんなに多くないはず
255デフォルトの名無しさん
2021/12/20(月) 18:51:15.00ID:DVSwWolF 以前は
親(コンテナ)コンポーネントで状態管理
子(プレゼンテーショナル)コンポーネントは表示だけ
ってのが流行ってたが廃れたな
再レンダリングが発生しやすいせいかな
親(コンテナ)コンポーネントで状態管理
子(プレゼンテーショナル)コンポーネントは表示だけ
ってのが流行ってたが廃れたな
再レンダリングが発生しやすいせいかな
256デフォルトの名無しさん
2021/12/21(火) 15:04:20.98ID:2tghIxun まあケースバイケースになるか
そこそこ複雑な入力ページなんだけど
親に状態を持たせると不定個数の状態の扱いがやりにくい
子に状態を持たせると親への通知がやりにくい
どっちでやってもスッキリしない
そこそこ複雑な入力ページなんだけど
親に状態を持たせると不定個数の状態の扱いがやりにくい
子に状態を持たせると親への通知がやりにくい
どっちでやってもスッキリしない
257デフォルトの名無しさん
2021/12/21(火) 15:13:11.31ID:YHqQ6+Ts 入力フォームなら素直にreact-hook-form使え
258デフォルトの名無しさん
2021/12/21(火) 15:40:04.62ID:ESVu6HO8 ほぉん
なかなか便利そう
どこまで複雑な入力ページに耐えられるか気になるところだけど
単純なフォームならこれで良さそうだ
なかなか便利そう
どこまで複雑な入力ページに耐えられるか気になるところだけど
単純なフォームならこれで良さそうだ
259デフォルトの名無しさん
2021/12/29(水) 00:29:54.67ID:ceh8LJAo React完全に理解したがパフォーマンスの上げ方がわからねえ
260デフォルトの名無しさん
2021/12/29(水) 00:50:07.29ID:b+BxW/Al >>259
理解出来てねーーじゃん!
理解出来てねーーじゃん!
261デフォルトの名無しさん
2021/12/29(水) 01:49:18.73ID:CcYJF9F8 完全に理解した=何もわからんだからな
チョットでかる=世界一わかってるだし
チョットでかる=世界一わかってるだし
262デフォルトの名無しさん
2022/01/04(火) 12:28:56.67ID:LToZWYYj ブラウザデバッガで見て出てるエラー消すところからかな
あとreact-router使わんとページ遷移の度にDOM読み直しとかも効率悪い事この上ない
あとreact-router使わんとページ遷移の度にDOM読み直しとかも効率悪い事この上ない
263デフォルトの名無しさん
2022/01/05(水) 12:38:15.54ID:1AqA60VG Reactの優れたイディオム、デザインパターンまとめたサイト、書籍、教えてよ
264デフォルトの名無しさん
2022/01/09(日) 14:30:52.75ID:YbeZmiIg react nativeのパーツかわからないんですけど
画面の下から出てくるダイアログってどのモジュールを使えばいいんでしょう?
ttps://i.imgur.com/FuvGKCx.jpg
画面の下から出てくるダイアログってどのモジュールを使えばいいんでしょう?
ttps://i.imgur.com/FuvGKCx.jpg
265デフォルトの名無しさん
2022/01/20(木) 19:51:41.70ID:fJA5C2IK reduxでプレーンな只の関数でstate参照したい時ってどうすれば良いの?
reducersでもactionsでも無いから直接stateは見えない。コンポーネントじゃ無いから
store.subscribeもuseSelectorも出来ないgetState()もない。
やりたいことは、Webの初期表示でstate.env{}の中にブラウザの種類・バージョンとかOSの種類とか入れてるけどそれを単純に参照する関数が書けない
stateはreadOnlyで更新しないから見えればOK
export const seeStateAndDoSomething() {
const { env } = getState() ; // これは出来ないけどコレっぽい処理したい
if ( env.browser == 'firefox' ) {
...何かの処理
} else if ( env.browser == 'chrome' ) {
}
);
どうすりゃ良いの?おそえて。
reducersでもactionsでも無いから直接stateは見えない。コンポーネントじゃ無いから
store.subscribeもuseSelectorも出来ないgetState()もない。
やりたいことは、Webの初期表示でstate.env{}の中にブラウザの種類・バージョンとかOSの種類とか入れてるけどそれを単純に参照する関数が書けない
stateはreadOnlyで更新しないから見えればOK
export const seeStateAndDoSomething() {
const { env } = getState() ; // これは出来ないけどコレっぽい処理したい
if ( env.browser == 'firefox' ) {
...何かの処理
} else if ( env.browser == 'chrome' ) {
}
);
どうすりゃ良いの?おそえて。
266デフォルトの名無しさん
2022/01/20(木) 19:58:21.41ID:dHw5M9GX store.getState()
267デフォルトの名無しさん
2022/01/22(土) 01:00:33.62ID:Q6mU4pBx React Nativeはオワコンらしいですが
Reactは使う価値ありますか?
教えてエロい人
Reactは使う価値ありますか?
教えてエロい人
268デフォルトの名無しさん
2022/01/22(土) 01:02:15.28ID:VcaTUFKD >>267
自分で見極められないの?
自分で見極められないの?
269デフォルトの名無しさん
2022/01/22(土) 01:17:25.20ID:Q6mU4pBx270デフォルトの名無しさん
2022/01/22(土) 01:19:22.91ID:NdDHIpih 初心者はやめておいた方が良いです
271デフォルトの名無しさん
2022/01/22(土) 01:25:12.66ID:Q6mU4pBx これから勉強するならFlutterの方がいいですか?
272デフォルトの名無しさん
2022/01/22(土) 10:04:33.20ID:Z1IOsfXg シカトっすか?
273デフォルトの名無しさん
2022/01/22(土) 11:17:22.76ID:N7C2miyW まず上級者になることをおすすめします
274デフォルトの名無しさん
2022/01/23(日) 11:01:19.74ID:5zqw2dvO create-react-appで、npm run buildしたのですが
manifest.jsonのみがbuildフォルダーにコピーされないです・・・
回避方法ないでしょうか?
manifest.jsonのみがbuildフォルダーにコピーされないです・・・
回避方法ないでしょうか?
275デフォルトの名無しさん
2022/01/23(日) 11:08:40.96ID:5zqw2dvO >>274
解決しました!失礼しました・・・。
解決しました!失礼しました・・・。
276デフォルトの名無しさん
2022/01/26(水) 10:48:59.57ID:PJmPV3+3 Reduxのストアにクラスっぽいオブジェクト(プロパティ+関数)入れようとしたら
non-serialize objectがどうのこうのとエラーになった。
そもそも何でシリアライズなんかやろうとするんだ?
non-serialize objectがどうのこうのとエラーになった。
そもそも何でシリアライズなんかやろうとするんだ?
277デフォルトの名無しさん
2022/01/26(水) 10:59:34.07ID:0H2oAMTN 不変性を担保するためじゃね
278デフォルトの名無しさん
2022/01/26(水) 11:35:00.62ID:SY+BWxpR なんかもっと決定的な感じのフレームワーク出ないのエロい人?
279デフォルトの名無しさん
2022/01/26(水) 17:40:44.17ID:kU7cNmd7 >>277
別にそんなもん担保する必要ないだろ。
別にそんなもん担保する必要ないだろ。
280デフォルトの名無しさん
2022/01/26(水) 18:01:16.43ID:+qGThwTi reduxの根本が不変性をベースにしてるんだが
でないとシャロー比較とか成り立たない
たいして有用じゃないがタイムトラベルも不変性前提の機能
そのへんちゃんと理解してから使った方がいいよ
でないとシャロー比較とか成り立たない
たいして有用じゃないがタイムトラベルも不変性前提の機能
そのへんちゃんと理解してから使った方がいいよ
281デフォルトの名無しさん
2022/01/27(木) 00:56:59.89ID:58xO6kDn そんなどうでも良い概念を使用者全員に押し付けて来んなよ。
単にreactでアプリをリプレイスで作ったら状態がコンポーネント単位で持たれて、
アプリ単位で持ちたいな、と考えたらReduxが一番人気だよって事で採用しただけだ。
不変性?(w) プログラムが変数に余計な変更加えなければ何もしなくても担保されてるだろw
単にreactでアプリをリプレイスで作ったら状態がコンポーネント単位で持たれて、
アプリ単位で持ちたいな、と考えたらReduxが一番人気だよって事で採用しただけだ。
不変性?(w) プログラムが変数に余計な変更加えなければ何もしなくても担保されてるだろw
282デフォルトの名無しさん
2022/01/27(木) 01:06:46.42ID:oXQnXbb3 ダメだこいつ…
283デフォルトの名無しさん
2022/01/27(木) 01:39:30.37ID:58xO6kDn 何故それが必要と思うのか説明して見ろよw
284デフォルトの名無しさん
2022/01/27(木) 05:05:01.32ID:kowYjA+c Ruby on Rails の作者・DHH の動画では、
React, Vue.js とか、規約だけのフレームワーク・Stimulus も使う
React, Vue.js とか、規約だけのフレームワーク・Stimulus も使う
285デフォルトの名無しさん
2022/01/27(木) 10:03:38.14ID:QU6mkTFl >>283
すでに280に書いただろが
もっともシャロー比較のために不変性が必要というのは話が逆で不変性が前提としてあるからシャロー比較が機能するんだが
もっと言えばreduxは関数型のスタイルを「選択」して全体が作られてる
だからステートやアクションは不変に、reducerやselecterは純粋にすべしってこと
それがreduxの設計意図
一番人気と聞いただけで飛びついちゃった上っ面君には関係ない話だけどな
すでに280に書いただろが
もっともシャロー比較のために不変性が必要というのは話が逆で不変性が前提としてあるからシャロー比較が機能するんだが
もっと言えばreduxは関数型のスタイルを「選択」して全体が作られてる
だからステートやアクションは不変に、reducerやselecterは純粋にすべしってこと
それがreduxの設計意図
一番人気と聞いただけで飛びついちゃった上っ面君には関係ない話だけどな
286デフォルトの名無しさん
2022/01/27(木) 10:51:15.03ID:zgsWbtRT >>284
DHHってフロントエンドでは間違いしかしない人だからスルー推奨
DHHってフロントエンドでは間違いしかしない人だからスルー推奨
287デフォルトの名無しさん
2022/01/27(木) 11:28:21.68ID:58xO6kDn >>285
だから全てのアプリがシャロー比較とかタイムトラベルしたい訳じゃないだろって話してんだがw?
まあ、余計な機能をテンコ盛りに詰めて利用者に強制したから、別の実装が出たりreactが自前実装して
見捨てられるんだろうけど。Reduxに期待する事はFluxのあの図を忠実に実装する事だけで余計な機能は付けるなよ
>一番人気と聞いただけで飛びついちゃった上っ面君には関係ない話だけどな
飛びついたのは俺じゃなくて俺が使ってるミドル作った人だけど、まあ、あのアプリの規模(デモレベル)
でそんな面倒臭いシステム使ったのなら、理由はそんなところだろうなと。
Reduxはマジあかんな。費用対効果が悪すぎる。
コスト意識の無い潔癖な学者か研究者が作ったシステムって感じがするね。
だから全てのアプリがシャロー比較とかタイムトラベルしたい訳じゃないだろって話してんだがw?
まあ、余計な機能をテンコ盛りに詰めて利用者に強制したから、別の実装が出たりreactが自前実装して
見捨てられるんだろうけど。Reduxに期待する事はFluxのあの図を忠実に実装する事だけで余計な機能は付けるなよ
>一番人気と聞いただけで飛びついちゃった上っ面君には関係ない話だけどな
飛びついたのは俺じゃなくて俺が使ってるミドル作った人だけど、まあ、あのアプリの規模(デモレベル)
でそんな面倒臭いシステム使ったのなら、理由はそんなところだろうなと。
Reduxはマジあかんな。費用対効果が悪すぎる。
コスト意識の無い潔癖な学者か研究者が作ったシステムって感じがするね。
288デフォルトの名無しさん
2022/01/27(木) 12:05:30.94ID:zgsWbtRT >>287
全てのアプリがしたいかどうかじゃなくてredux使うアプリはその流儀に従うしかないって話なんだがわからず屋だな
それが嫌ならredux選ぶなっつーだけの話だ
ちなみにシャロー比較はreact.memoなどreactエコシステムの共通項だから全てのreactアプリ開発者が身につけておくべきことだけどな
だいたいreduxの元の作者が今はreactコアチームの主要メンバーでredux不要化を進めてる張本人だし
全てのアプリがしたいかどうかじゃなくてredux使うアプリはその流儀に従うしかないって話なんだがわからず屋だな
それが嫌ならredux選ぶなっつーだけの話だ
ちなみにシャロー比較はreact.memoなどreactエコシステムの共通項だから全てのreactアプリ開発者が身につけておくべきことだけどな
だいたいreduxの元の作者が今はreactコアチームの主要メンバーでredux不要化を進めてる張本人だし
289デフォルトの名無しさん
2022/01/28(金) 04:01:26.15ID:dtKXZRXN Deanin, 1/10、15分の動画
Setup A Ruby on Rails 7 API With React JS
https://www.youtube.com/watch?v=sh4WrNGDvQM
WSL, Ubuntu 20.04, VSCode(Remote WSL)
Ruby 3, Rails 7 のAPI モード、React, Axios
Railsのscaffold で、簡単なデモ。
この兄ちゃんは、きれいな英語を喋るので、翻訳も分かりやすい
Setup A Ruby on Rails 7 API With React JS
https://www.youtube.com/watch?v=sh4WrNGDvQM
WSL, Ubuntu 20.04, VSCode(Remote WSL)
Ruby 3, Rails 7 のAPI モード、React, Axios
Railsのscaffold で、簡単なデモ。
この兄ちゃんは、きれいな英語を喋るので、翻訳も分かりやすい
290デフォルトの名無しさん
2022/01/28(金) 07:19:26.02ID:FbvuqA1u Ruby はお呼びじゃないです
291デフォルトの名無しさん
2022/01/29(土) 01:06:49.85ID:b1Z4prOk >だいたいreduxの元の作者が今はreactコアチームの主要メンバーでredux不要化を進めてる張本人だし
害悪をまき散らした張本人だな。
マジであの生鮮性を何故実装して広めようとした事は理解に苦しむ。
J2EEとかhadoopとか(多分将来的にk8sも)生産性が超絶に低い潔癖システムが消えてなくなった事例から全く学ぼうとしないんだな。
害悪をまき散らした張本人だな。
マジであの生鮮性を何故実装して広めようとした事は理解に苦しむ。
J2EEとかhadoopとか(多分将来的にk8sも)生産性が超絶に低い潔癖システムが消えてなくなった事例から全く学ぼうとしないんだな。
292デフォルトの名無しさん
2022/02/06(日) 05:24:52.64ID:ETpepHrW ReactでPOSTメソッドだけを受けるアプリ作るのはどうすれば良いんでしょう?
"react POST method "でぐぐってもfetchを使えとか、何故か投げる側の処理ばかりが出ます。
webサーバーには何も入れてないので、npm start で動くサーバーと思しき物はreact-scriptsの筈です。
POSTメソッドだけに紐付いたコンポーネント書きたいのですが…
"react POST method "でぐぐってもfetchを使えとか、何故か投げる側の処理ばかりが出ます。
webサーバーには何も入れてないので、npm start で動くサーバーと思しき物はreact-scriptsの筈です。
POSTメソッドだけに紐付いたコンポーネント書きたいのですが…
293デフォルトの名無しさん
2022/02/06(日) 07:33:46.13ID:d9+JDYY/ >>292
(´Д`)
(´Д`)
294デフォルトの名無しさん
2022/02/06(日) 13:52:11.36ID:xkt5lO0Z >>292
これネタじゃなくマジで言ってんの
これネタじゃなくマジで言ってんの
295デフォルトの名無しさん
2022/02/06(日) 15:17:45.09ID:d9+JDYY/ (´Д`)
296デフォルトの名無しさん
2022/02/06(日) 15:52:20.16ID:YYEn69uQ GETとPOSTの違いを質問するだけで、
アレな人を面接から排除できるし、簡単だな
これで95%ぐらい排除できるし
アレな人を面接から排除できるし、簡単だな
これで95%ぐらい排除できるし
297デフォルトの名無しさん
2022/02/06(日) 16:34:57.86ID:FsJSE82A いやいや、この場合はクライアントとサーバの違いを質問するところからだろ……
298デフォルトの名無しさん
2022/02/06(日) 16:41:29.09ID:d9+JDYY/ まずネタかどうか...
299デフォルトの名無しさん
2022/02/06(日) 16:52:26.30ID:NfirkViC □私はロボットではありません
300デフォルトの名無しさん
2022/02/06(日) 21:41:04.19ID:g3gFasX1 あれ?Reactってサーバーサイドで動く処理は一切かけないの??
Next.jsとかあるから、かけるもんかと思ってたけど。
Next.jsとかあるから、かけるもんかと思ってたけど。
301デフォルトの名無しさん
2022/02/06(日) 22:13:46.32ID:akwTUDY3 Next.jsってそれっぽい処理あるのね
React勉強中でAPIサーバ別で作るかって思ってたけどNext.jsで事足りそう
React勉強中でAPIサーバ別で作るかって思ってたけどNext.jsで事足りそう
302デフォルトの名無しさん
2022/02/06(日) 22:34:10.48ID:hDdLDr4C Next.jsのサーバサイドはpages以下のページコンポーネントに対応するGETリクエストを受けたときだけそのページコンポーネントをレンダリングする(SSRの場合)
POSTを処理するにはAPIルートを使えるがこれはReactコンポーネント関係ない
POSTを処理するにはAPIルートを使えるがこれはReactコンポーネント関係ない
303デフォルトの名無しさん
2022/02/07(月) 16:33:13.54ID:QUqmCtWk Ruby on Rails は、React, Bootstrap が多い
他には、Vue.js, Stimulus, jQuery
Bulma, Tailwind
Rails にはHTML ではなく、JSON を返す、API モードもある
他には、Vue.js, Stimulus, jQuery
Bulma, Tailwind
Rails にはHTML ではなく、JSON を返す、API モードもある
304デフォルトの名無しさん
2022/02/07(月) 16:54:59.57ID:sj/r7l/l ウザ
305デフォルトの名無しさん
2022/02/08(火) 16:28:11.87ID:vHTqeH80 prettier以外でReact hookでつかえる
フォーマッターで何か良いの無いでしょか?
フォーマッターで何か良いの無いでしょか?
306デフォルトの名無しさん
2022/02/15(火) 22:42:35.11ID:/0MPsAKI eslint
307デフォルトの名無しさん
2022/03/16(水) 12:08:38.94ID:5z0ayZzJ webサイト作っててログイン名とか持ち回りたいんですけど、usestateとかpropsとかで持ち回るよりlocalstorageとかsessionstorageとか使えば良いのでは?と思うのですが何か問題あったりする?
308デフォルトの名無しさん
2022/03/16(水) 15:24:22.47ID:QBH5mk3r なぜその程度の情報をそこに保存しようと思ったのかを知りたいね
309デフォルトの名無しさん
2022/03/16(水) 21:21:30.66ID:5z0ayZzJ もち回るのが面倒だからこれでいいかなって、、
310デフォルトの名無しさん
2022/03/16(水) 21:24:39.33ID:aSvQMnmr どうせ他にも持ち回る情報はあるのだからちゃんと管理した方がいいよ
どっちしろuseLocalStorageみたいなフック作ることになるんだし
どっちしろuseLocalStorageみたいなフック作ることになるんだし
311デフォルトの名無しさん
2022/03/17(木) 01:04:21.86ID:nbrJosFU Ruby on Rails では、セッション情報を何を使って実現しているかは、あまり意識しない。
各デバイスを自分でコーディングする事もない
4KB までなら、ブラウザのcookie だし、
それ以上なら、Rails のキャッシュか、データベースとか
フレームワークを使わない人は、自分で調べてコーディングするから、
何十倍も時間が掛かって、なおかつ低品質な実装しかできない
各デバイスを自分でコーディングする事もない
4KB までなら、ブラウザのcookie だし、
それ以上なら、Rails のキャッシュか、データベースとか
フレームワークを使わない人は、自分で調べてコーディングするから、
何十倍も時間が掛かって、なおかつ低品質な実装しかできない
312デフォルトの名無しさん
2022/03/17(木) 23:27:53.87ID:575mXe6h >>311
氏ね
氏ね
313デフォルトの名無しさん
2022/04/01(金) 10:10:23.98ID:JecPgYr0 React初心者だけど画面のDevelper ToolsからReactコンポーネントが
どれなのかってわかりにくいよね?
ブラウザからHTMLを見るとどれがReactコンポーネントの塊なのかわかりにくいし
Reactコンポーネントを組み込んだHTMLのビューファイルのソースコードを見ると
配置されているコンポーネントが何なのかわかりにくい
どれなのかってわかりにくいよね?
ブラウザからHTMLを見るとどれがReactコンポーネントの塊なのかわかりにくいし
Reactコンポーネントを組み込んだHTMLのビューファイルのソースコードを見ると
配置されているコンポーネントが何なのかわかりにくい
314デフォルトの名無しさん
2022/04/01(金) 11:23:42.76ID:auF3smsz React DevToolsというのがありましてん
315デフォルトの名無しさん
2022/04/01(金) 18:54:14.92ID:yYW+C1/7 Reactってちょっとした実装するとすぐパフォーマンス悪くなって
不要なれだリングを抑制するのに苦労するじゃん
これ逆にで、全て手動でレダリング指示する方式には出来なかったん?
不要なれだリングを抑制するのに苦労するじゃん
これ逆にで、全て手動でレダリング指示する方式には出来なかったん?
316デフォルトの名無しさん
2022/04/01(金) 19:46:55.68ID:rhFjyhAq それなんてjQuery
317デフォルトの名無しさん
2022/04/03(日) 15:55:17.06ID:MTdqQjr6 >>307
recoil使えばええんやない?それで足りんかったらrecoil-persistも
recoil使えばええんやない?それで足りんかったらrecoil-persistも
318デフォルトの名無しさん
2022/04/13(水) 00:17:55.41ID:fbGfFCQp react-bootstrapの"esm"ってどこの馬鹿が付けたんだ?
RowとかColとかを自動インポートするたびにesmが付きやがる・・・(怒
それならreact-bootstrap-esmにでもしてreact-bootstrapとは分けろよ
とんでもねえ馬鹿野郎が作っちまったな
RowとかColとかを自動インポートするたびにesmが付きやがる・・・(怒
それならreact-bootstrap-esmにでもしてreact-bootstrapとは分けろよ
とんでもねえ馬鹿野郎が作っちまったな
319デフォルトの名無しさん
2022/04/15(金) 18:52:04.48ID:6JZFJ70w スマホアプリと連動するWebアプリを開発するために
html, css, js, ts, react, redux, material-uiなどについて現在勉強中
「組み込みの経験値があるから、Webアプリ開発なんて楽勝でしょwwwww」とか思ってたけど
技術選定を含めて二週間かかってもまだ開発に着手できてない
もう1週間はかかりそう。かなり敷居が高いな
html, css, js, ts, react, redux, material-uiなどについて現在勉強中
「組み込みの経験値があるから、Webアプリ開発なんて楽勝でしょwwwww」とか思ってたけど
技術選定を含めて二週間かかってもまだ開発に着手できてない
もう1週間はかかりそう。かなり敷居が高いな
320デフォルトの名無しさん
2022/04/15(金) 18:53:13.67ID:6JZFJ70w バックエンドはfirebaseとapp engineを使うつもりだから簡単なはずなんだけど
321デフォルトの名無しさん
2022/04/16(土) 10:36:16.56ID:GJol2hPc Material-UIもv5になってv4の頃より大分使いやすくなったし選択肢に入れてもいいんじゃない?
322デフォルトの名無しさん
2022/04/26(火) 03:06:09.90ID:1qeD7Yad >>319だけど、やっとまともに開発を進められるようになった
まだ手が早く動かなくて辛いわ
まだ手が早く動かなくて辛いわ
323デフォルトの名無しさん
2022/04/28(木) 12:12:12.35ID:+1bBzylX 新規でreduxとか茨の道じゃない?
324デフォルトの名無しさん
2022/04/29(金) 18:12:15.81ID:HVcwi/JU 比較的簡単なツールだから茨の道ということはない
325デフォルトの名無しさん
2022/04/30(土) 08:55:59.74ID:xRiYwFSM >>323
recoil使え
recoil使え
326デフォルトの名無しさん
2022/04/30(土) 20:24:57.68ID:zPHJgr0b recoilいいね
わかりやすいわ
わかりやすいわ
327デフォルトの名無しさん
2022/05/05(木) 11:51:03.63ID:JOrREzPe reduxを使うにしても、UI側だけで使用する状態の保持はcontextでやった方がいい感じかな
あくまで個人的感想の落書き
あくまで個人的感想の落書き
328デフォルトの名無しさん
2022/05/22(日) 20:06:50.28ID:QFhXSBvp gifjsってライブラリをReactNativeでも使えるようにしようと色々いじくってます。canvasが必要なのでreact-native-canvas入れてみたけどgetImagedataが遅すぎる...
webviewで実行したら改善するかな??もしくはなんか違うやり方あるかな??
webviewで実行したら改善するかな??もしくはなんか違うやり方あるかな??
329デフォルトの名無しさん
2022/05/29(日) 18:03:59.58ID:3mvQdNHh 組込みやってて流れでreactで自社内で使うwebアプリのフロント側
作らされる羽目になったのですが素人がreactとjs学ぶのに
定番みたいな書籍やコンテンツありますか?
バックエンドはやりませんがpythonのfastapiです。
作らされる羽目になったのですが素人がreactとjs学ぶのに
定番みたいな書籍やコンテンツありますか?
バックエンドはやりませんがpythonのfastapiです。
330デフォルトの名無しさん
2022/06/07(火) 16:32:08.16ID:trxEqnyj reactとかってソースにコメントって
あまり書かないほうがいい的な暗黙のルールってあります?
読まれちゃうから?
今のプロジェクトのソースにコメントがやけに少ない気がしてて、、。
あまり書かないほうがいい的な暗黙のルールってあります?
読まれちゃうから?
今のプロジェクトのソースにコメントがやけに少ない気がしてて、、。
331デフォルトの名無しさん
2022/06/09(木) 19:17:56.70ID:pioqxBxg ないです
トランスパイルしたら消えるのでしっかり書きましょう
トランスパイルしたら消えるのでしっかり書きましょう
332デフォルトの名無しさん
2022/07/01(金) 09:49:56.08ID:mdBqK8pn ありがとう
333デフォルトの名無しさん
2022/08/20(土) 11:13:41.79ID:ncpICP0v propsで受け取ったデータを
内部で更新するときに
useStateすると思うんですけど
そするとpropsの変更が無視されるんですけど
その時のベストプラクティスって何ですか?
内部で更新するときに
useStateすると思うんですけど
そするとpropsの変更が無視されるんですけど
その時のベストプラクティスって何ですか?
334デフォルトの名無しさん
2022/08/25(木) 12:56:19.31ID:H3bW7ybM ここReactの本スレ?
過疎ってるの?
過疎ってるの?
335デフォルトの名無しさん
2022/08/25(木) 17:55:45.09ID:Tb5qjwQY 過疎ってるのは明白やろ
336デフォルトの名無しさん
2022/08/25(木) 17:58:32.30ID:Tb5qjwQY ベストプラクティスかは知らんけど中間のコンポーネントで親からのpropsが変わったら子のkeyを変える方法を使ってるな
337デフォルトの名無しさん
2022/08/30(火) 00:50:56.99ID:GSie6Ogu reactはtypescriptが必須なのでしょうか?
338デフォルトの名無しさん
2022/08/30(火) 03:03:46.27ID:R48CF1Id >>337
いらん
いらん
339デフォルトの名無しさん
2022/08/30(火) 03:55:25.12ID:AgQQgySl Reactが流行っていないから、過疎っているんだよ
340デフォルトの名無しさん
2022/08/30(火) 18:08:40.22ID:GSie6Ogu reactの求人は多いですけど、実際にはどうなのでしょうか。
341デフォルトの名無しさん
2022/08/30(火) 19:28:11.75ID:148lWuya Reactできる人は全然足りてない
342デフォルトの名無しさん
2022/08/30(火) 19:53:41.07ID:GSie6Ogu343デフォルトの名無しさん
2022/08/30(火) 20:28:20.43ID:oTUqrsBR 数年Web屋やって引退するつもりならそれでもいい
344デフォルトの名無しさん
2022/08/30(火) 21:03:00.66ID:BxScEIY5 Reactのメリットを教示するには結構ガッツリ使いまわせる様な大枠を一回つくってしまわないといけないんだよな
それができるまでのハードルは結構高いけど一回作ってしまえば色々再利用性が高くて開発効率が各段に上がる
それができるまでのハードルは結構高いけど一回作ってしまえば色々再利用性が高くて開発効率が各段に上がる
345デフォルトの名無しさん
2022/08/30(火) 22:54:29.99ID:GSie6Ogu JavaScript関連技術でwebアプリを作るならreactは便利でしょうか?
346デフォルトの名無しさん
2022/08/30(火) 23:14:38.13ID:AsY/BIgk 便利さでいうならAngularがいいよ
347デフォルトの名無しさん
2022/08/30(火) 23:44:08.14ID:B8+owlOV 満足度が底辺のangularがなんだって?
https://2021.stateofjs.com/ja-JP/libraries/front-end-frameworks
https://2021.stateofjs.com/ja-JP/libraries/front-end-frameworks
348デフォルトの名無しさん
2022/08/31(水) 01:59:04.53ID:J9nI7vcp >>345
できる人は、何でもできる
できる人は、何でもできる
349デフォルトの名無しさん
2022/08/31(水) 11:44:05.05ID:FlEWiE9h Reactやった後にAngular触ると1個コンポーネント作る手間が煩わし過ぎる
350デフォルトの名無しさん
2022/08/31(水) 12:36:45.93ID:3saFUPw3 ブラウザ実装の生WebComponentsも大概メンドクサイからオヌヌメ
351デフォルトの名無しさん
2022/09/01(木) 05:11:23.04ID:jMwj7QaK vue.jsよりreactの方が優れてますよね?
352デフォルトの名無しさん
2022/09/13(火) 16:36:34.31ID:DqV+9O8X test
353デフォルトの名無しさん
2022/09/26(月) 01:00:41.00ID:ikr92+JD 最近フロントエンドエンジニアに転職した元cobolerだけど2つ質問したい
・状態管理ライブラリって今はReduxが主流で公式はtoolkit推してるけど、toolkitってrecoilと変わらなくね?recoilに比べてどういうメリットがあるの?
・クラスベースの記述って殆どしないの?ベストプラクティスは関数ベース?
・状態管理ライブラリって今はReduxが主流で公式はtoolkit推してるけど、toolkitってrecoilと変わらなくね?recoilに比べてどういうメリットがあるの?
・クラスベースの記述って殆どしないの?ベストプラクティスは関数ベース?
354デフォルトの名無しさん
2022/09/26(月) 20:02:50.86ID:wZFpwFwK toolkitはReduxで使い勝手が悪かった機能を改良したもの。(asyncに対応させるためにthunkとかsagaが必要だったりとかの)
recoilのほうが新しく記述もシンプルで見通しが良くなる。stateのset/get両方に対応。ただしまだexperimental
https://www.npmjs.com/package/recoil
Recoil is an experimental state management framework for React.
公式は関数コンポーネント+フックを推奨
https://ja.reactjs.org/docs/hooks-faq.html#should-i-use-hooks-classes-or-a-mix-of-both
フック、クラスのいずれを使うべきですか、あるいはその両方でしょうか?
準備ができしだい、新しいコンポーネントでフックを試すことをお勧めします。
recoilのほうが新しく記述もシンプルで見通しが良くなる。stateのset/get両方に対応。ただしまだexperimental
https://www.npmjs.com/package/recoil
Recoil is an experimental state management framework for React.
公式は関数コンポーネント+フックを推奨
https://ja.reactjs.org/docs/hooks-faq.html#should-i-use-hooks-classes-or-a-mix-of-both
フック、クラスのいずれを使うべきですか、あるいはその両方でしょうか?
準備ができしだい、新しいコンポーネントでフックを試すことをお勧めします。
355デフォルトの名無しさん
2022/09/26(月) 22:42:27.40ID:ikr92+JD356デフォルトの名無しさん
2022/09/26(月) 22:56:01.37ID:lxhy0Qxo JS/TSでクラスはほっとんど使わない
使うのは独自のErrorクラスくらいだな
メソッドというより関数をプロパティとして持つオブジェクトはよく使う
でも基本は単なる関数
使うのは独自のErrorクラスくらいだな
メソッドというより関数をプロパティとして持つオブジェクトはよく使う
でも基本は単なる関数
357デフォルトの名無しさん
2022/09/26(月) 22:59:55.62ID:rxxJbSNv358デフォルトの名無しさん
2022/09/26(月) 23:21:54.38ID:rxxJbSNv ああ、ごめんコンポーネントの話じゃなかったのか
359デフォルトの名無しさん
2022/09/26(月) 23:22:50.91ID:tIU7Oyti React実践の教科書、2021
この本には、クラスは出てこない。
すべて関数
この本には、クラスは出てこない。
すべて関数
360デフォルトの名無しさん
2022/09/27(火) 12:54:00.07ID:CMfXpwKQ なるほどなるほど
仕事でcobolとvbaしか使ったbアとなかったかb辜Iブジェクト試w向的な記述自荘フ馴染みなかっbスわ
Reactに関しては、本やらネットやらで関数しか使わねみたいな記述は多く見てたんだけど
今配属されてるプロジェクトではクラスベースの書き方が多く見られたから
現場では何だかんだ使うんだ!って勝手に納得してたけどそうじゃないのね
元々phpやらjavaやらやってた人たちが分かりやすいからって使ってる感じぽいな
仕事でcobolとvbaしか使ったbアとなかったかb辜Iブジェクト試w向的な記述自荘フ馴染みなかっbスわ
Reactに関しては、本やらネットやらで関数しか使わねみたいな記述は多く見てたんだけど
今配属されてるプロジェクトではクラスベースの書き方が多く見られたから
現場では何だかんだ使うんだ!って勝手に納得してたけどそうじゃないのね
元々phpやらjavaやらやってた人たちが分かりやすいからって使ってる感じぽいな
361デフォルトの名無しさん
2022/09/27(火) 13:46:50.26ID:t32oMnpk JSのクラスと
Reactのクラスコンポーネントと
Reactの関数コンポーネントの区別出来てる?
ちなみにReactのクラスコンポーネントはオワコンだけどね
Reactのクラスコンポーネントと
Reactの関数コンポーネントの区別出来てる?
ちなみにReactのクラスコンポーネントはオワコンだけどね
362デフォルトの名無しさん
2022/09/27(火) 14:04:56.54ID:CMfXpwKQ >>361
・jsのクラス…いわゆるオブジェクト指向の考え方におけるクラス。継承やらなんやらできる。但し、プロトタイプベースであるjsではほとんど使われない
・クラスコンポーネント…super(constructor)みたいな書き方してstate管理するやつ。thisとか使いまくって見通しクソ悪い上にhooks使えないゴミ。progateや公式チュートリアルはこの書き方してるので初心者は騙される。
・関数コンポーネント…スタンダードなreactコンポーネント。読みやすい。神。
こんなイメージだけど合ってる!?
・jsのクラス…いわゆるオブジェクト指向の考え方におけるクラス。継承やらなんやらできる。但し、プロトタイプベースであるjsではほとんど使われない
・クラスコンポーネント…super(constructor)みたいな書き方してstate管理するやつ。thisとか使いまくって見通しクソ悪い上にhooks使えないゴミ。progateや公式チュートリアルはこの書き方してるので初心者は騙される。
・関数コンポーネント…スタンダードなreactコンポーネント。読みやすい。神。
こんなイメージだけど合ってる!?
363デフォルトの名無しさん
2022/09/27(火) 15:39:04.72ID:D1kdTDEr364デフォルトの名無しさん
2022/09/27(火) 15:58:48.85ID:aOp1T7nJ >>360
> Reactに関しては、本やらネットやらで関数しか使わねみたいな記述は多く見てたんだけど
> 今配属されてるプロジェクトではクラスベースの書き方が多く見られたから
> 現場では何だかんだ使うんだ!って勝手に納得してたけどそうじゃないのね
Reactだから関数しか使わないということはないという認識
本やネットで見かけるサンプルコードはそのへんは主眼じゃないから参考にならんでしょ
クラスベースを頭ごなしに否定するものではないと思うよ
> Reactに関しては、本やらネットやらで関数しか使わねみたいな記述は多く見てたんだけど
> 今配属されてるプロジェクトではクラスベースの書き方が多く見られたから
> 現場では何だかんだ使うんだ!って勝手に納得してたけどそうじゃないのね
Reactだから関数しか使わないということはないという認識
本やネットで見かけるサンプルコードはそのへんは主眼じゃないから参考にならんでしょ
クラスベースを頭ごなしに否定するものではないと思うよ
365デフォルトの名無しさん
2022/09/27(火) 16:41:51.18ID:MQqAKvI3 Reactコンポーネントに関してはクラスベースを頭ごなしに否定して構わない
366デフォルトの名無しさん
2022/09/27(火) 16:48:43.98ID:CMfXpwKQ >>364
頭ごなしに否定する気はないんだけど
(jsの)クラスベースの記述するメリットってどういうとこがあるの?
配属されたプロジェクトのコードを初心者目線で見てクラスベースと関数ベースが混在して読みにくいな、って印象なのよ
頭ごなしに否定する気はないんだけど
(jsの)クラスベースの記述するメリットってどういうとこがあるの?
配属されたプロジェクトのコードを初心者目線で見てクラスベースと関数ベースが混在して読みにくいな、って印象なのよ
367デフォルトの名無しさん
2022/09/27(火) 17:25:00.79ID:fOqsMNTu Reactに関しては関数コンポーネントしか使わないけど、それ以外の部分では臨機応変に使うのみよ。まぁそれでもclassの出番はかなり限定されるけど……
368デフォルトの名無しさん
2022/09/27(火) 17:28:55.43ID:YFL0VkhR プロジェクトメンバーにどうして混在してるのか聞いてみた?
369デフォルトの名無しさん
2022/09/27(火) 17:29:21.69ID:fOqsMNTu jsにおけるclassの出番って、大量に作成し、なおかつ副作用があるオブジェクトがある場合くらい……。
370デフォルトの名無しさん
2022/09/27(火) 18:13:32.56ID:dJevJ7EZ クラスコンポーネントは公式に非推奨扱いじゃね
371デフォルトの名無しさん
2022/09/27(火) 18:15:33.41ID:397xSubl 話の流れで関数コンポーネントかクラスコンポーネントかの話は終わってるのは分かるっしょ
372デフォルトの名無しさん
2022/09/27(火) 18:20:28.32ID:dJevJ7EZ Reactなので将来容赦なくクラスコンポーネントが無くなるかサポート切ると思う
373デフォルトの名無しさん
2022/09/27(火) 20:04:34.40ID:CMfXpwKQ >>368
うん
「本当はよくないんですけどね~~」
的なことを言ってたよ
他にも
・propsのバケツリレー
・コールバック関数使って 子→親へのprops逆流(これが一番酷い)
・アロー関数とnamed functionの混在
・typeとinterfaceの混在
・mui使ってるのに無駄にemotionでカスタムコンポーネント作成
等々………
どの現場もこんな感じなのかなぁとは思ったりするけど
やっぱ立ち上げ段階でコーディングルールやら設計やらある程度固めとかないとスパゲッティ化するんだね
うん
「本当はよくないんですけどね~~」
的なことを言ってたよ
他にも
・propsのバケツリレー
・コールバック関数使って 子→親へのprops逆流(これが一番酷い)
・アロー関数とnamed functionの混在
・typeとinterfaceの混在
・mui使ってるのに無駄にemotionでカスタムコンポーネント作成
等々………
どの現場もこんな感じなのかなぁとは思ったりするけど
やっぱ立ち上げ段階でコーディングルールやら設計やらある程度固めとかないとスパゲッティ化するんだね
374デフォルトの名無しさん
2022/09/27(火) 20:20:13.86ID:6DdS+dLy プロジェクトメンバーが現状を問題と捉えてるならどういう方針でコードを
書いていけばいいかお伺いを立ててそれに従うべきでしょ
もちろん自分の意見があるならそれも伝えて
書いていけばいいかお伺いを立ててそれに従うべきでしょ
もちろん自分の意見があるならそれも伝えて
375デフォルトの名無しさん
2022/09/27(火) 20:22:10.28ID:fOqsMNTu376デフォルトの名無しさん
2022/09/27(火) 20:39:34.88ID:CMfXpwKQ377デフォルトの名無しさん
2022/09/27(火) 22:23:16.69ID:/UUTRmF2378359
2022/09/27(火) 23:17:49.69ID:oW3s344K >>373
React実践の教科書、2021
基礎はこの本で良い。3日で読める
propsのバケツリレーは、
グローバルState である、useContext を使うと書いてある
これ以上に複雑なものは、Redux, Recoil, Apollo Client など
useMemo など、use何々にはどういう機能があるか、すべて見た方がよい
React実践の教科書、2021
基礎はこの本で良い。3日で読める
propsのバケツリレーは、
グローバルState である、useContext を使うと書いてある
これ以上に複雑なものは、Redux, Recoil, Apollo Client など
useMemo など、use何々にはどういう機能があるか、すべて見た方がよい
379359
2022/09/27(火) 23:29:13.30ID:oW3s344K Reactビギナーズガイド ――コンポーネントベースのフロントエンド開発入門
Stoyan Stefanov, 2017
この本には、createClass と書いてあるけど、
2017年6月には非推奨になっている
var MyComponent = React.createClass({
render: function() {
return React.DOM.span(null, "カスタムコンポーネント");
}
});
Stoyan Stefanov, 2017
この本には、createClass と書いてあるけど、
2017年6月には非推奨になっている
var MyComponent = React.createClass({
render: function() {
return React.DOM.span(null, "カスタムコンポーネント");
}
});
380デフォルトの名無しさん
2022/09/27(火) 23:53:21.49ID:BMrl8a7V なんでそんなにクラスコンポーネントの話にこだわるの?
381デフォルトの名無しさん
2022/09/28(水) 20:45:18.22ID:KHG5QcXL presentationalとcontainerに分けて書くといいよ、って本かなんかで読んだことある。今のプロジェクトでも実践されてる。
で、その辺の構成の都合上、仕方なくコールバック関数使ってpropsの値を子→親に伝播させてるけど普通なの?
一般的には状態管理ライブラリ使うべきだと思ってるけど認識違う?
で、その辺の構成の都合上、仕方なくコールバック関数使ってpropsの値を子→親に伝播させてるけど普通なの?
一般的には状態管理ライブラリ使うべきだと思ってるけど認識違う?
382デフォルトの名無しさん
2022/09/28(水) 21:57:59.16ID:Km2fmn1T プレゼンテーショナルとコンテナに分けるのはRedux全盛時代の流行でhooks以降は廃れた
それとは別に親から子にコールバック渡すのは極めて普通
useReducerなんかそういう使い方がほとんどだろ
その親がほとんどルート(いわゆるAppコンポーネント)に近いくらい上位にいるならそれはグローバルステート
それとは別に親から子にコールバック渡すのは極めて普通
useReducerなんかそういう使い方がほとんどだろ
その親がほとんどルート(いわゆるAppコンポーネント)に近いくらい上位にいるならそれはグローバルステート
383デフォルトの名無しさん
2022/09/28(水) 22:11:03.79ID:0Dahyjoe グローブステートにRxで変更通知でどうですか?
384デフォルトの名無しさん
2022/09/28(水) 22:46:08.76ID:HuYE1qae >>382
へー!なるほど!
その経緯は知らんかったわ!ありがとう
propsの大原則として親→子→……
があって、それを解消するためのグローバルステートと状態管理ライブラリ、という理解なんだけど
グローバルステート使わずに普通にコールバックして直接、
子→親、孫→親みたいな渡し方してるのに違和感感じてたのよ
現場では割と普通のことなのね
へー!なるほど!
その経緯は知らんかったわ!ありがとう
propsの大原則として親→子→……
があって、それを解消するためのグローバルステートと状態管理ライブラリ、という理解なんだけど
グローバルステート使わずに普通にコールバックして直接、
子→親、孫→親みたいな渡し方してるのに違和感感じてたのよ
現場では割と普通のことなのね
385デフォルトの名無しさん
2022/09/28(水) 23:33:30.69ID:N1fcW8jX え、一つのコンポーネントを表示とロジックに分けるやつもう廃れたのか…
今はどういうのが流行りなの?
今はどういうのが流行りなの?
386デフォルトの名無しさん
2022/09/28(水) 23:38:10.61ID:QcgKtZxa ひょっとしてReact Routerって仕組み上ブラウザキャッシュ効かない?
387デフォルトの名無しさん
2022/09/29(木) 01:06:57.42ID:6obmiat7 >>385
ロジックはhooks
データ取得もhooks (swrやReact Query)
そのデータ取得hooksはデータを表示するコンポーネントで呼び出す
これは特にGraphQLではフラグメントコロケーションと呼ばれる
GraphQL以外でもRemixがコロケーションを実現してる
総じて変に分類するより凝集度を高くする方向に進化してる
ロジックはhooks
データ取得もhooks (swrやReact Query)
そのデータ取得hooksはデータを表示するコンポーネントで呼び出す
これは特にGraphQLではフラグメントコロケーションと呼ばれる
GraphQL以外でもRemixがコロケーションを実現してる
総じて変に分類するより凝集度を高くする方向に進化してる
388デフォルトの名無しさん
2022/09/29(木) 01:29:18.28ID:ffAnOOZb >>387
例えば複雑な条件と処理に応じた多様なウンコの画像表示するコンポーネントShowUnkoがあったとして
その条件や処理をShowUnkoの中に全部書くのが流行りなん?
presentationalとcontainerの例だと
複雑な条件と処理をcontainerに記述して
算出した結果をpresentationalに渡してウンコの画像が出るけど
今の流行りは色々なライブラリ駆使してそれらを一つに纏める、ってこと?
…まぁ少なくとも個人開発してる頃は後者のが全然やりやすかったけど
例えば複雑な条件と処理に応じた多様なウンコの画像表示するコンポーネントShowUnkoがあったとして
その条件や処理をShowUnkoの中に全部書くのが流行りなん?
presentationalとcontainerの例だと
複雑な条件と処理をcontainerに記述して
算出した結果をpresentationalに渡してウンコの画像が出るけど
今の流行りは色々なライブラリ駆使してそれらを一つに纏める、ってこと?
…まぁ少なくとも個人開発してる頃は後者のが全然やりやすかったけど
389デフォルトの名無しさん
2022/09/29(木) 07:28:27.58ID:+pwL/l2M >>386
くっそ短絡的だった。サイズがデカイjsファイルだけURL固定すりゃ良いだけだったわ……
くっそ短絡的だった。サイズがデカイjsファイルだけURL固定すりゃ良いだけだったわ……
390デフォルトの名無しさん
2022/09/29(木) 07:40:58.14ID:6obmiat7391デフォルトの名無しさん
2022/09/29(木) 08:51:14.08ID:DUgkcSyO Ruby on Rails では、コントローラーの肥大化を防ぐために、
Skinny Controller, Fat Model を推奨した。
その結果、モデルが肥大化した
そこで今度は、モデルの処理を減らすために、
Form Object, Service Object へ処理を分けた
また表示処理は、Presenter へ分けた。
それで、Form Presenter, Model Presenter が出来た
Skinny Controller, Fat Model を推奨した。
その結果、モデルが肥大化した
そこで今度は、モデルの処理を減らすために、
Form Object, Service Object へ処理を分けた
また表示処理は、Presenter へ分けた。
それで、Form Presenter, Model Presenter が出来た
392デフォルトの名無しさん
2022/09/29(木) 08:54:50.37ID:vsyIBCv9393デフォルトの名無しさん
2022/09/29(木) 09:34:16.50ID:6obmiat7 >>392
そういうこと
そういうこと
394359
2022/09/29(木) 09:39:43.34ID:DUgkcSyO React実践の教科書、2021
この本には、カスタムフック・自作のHooks も書いてある
ロジックをコンポーネントから分離し、複数コンポーネントで再利用する。
共有ロジック
この本には、カスタムフック・自作のHooks も書いてある
ロジックをコンポーネントから分離し、複数コンポーネントで再利用する。
共有ロジック
395デフォルトの名無しさん
2022/09/29(木) 09:52:34.39ID:clewMKt/ >>393
hooks限定である必要はないと思うが...
hooks限定である必要はないと思うが...
396デフォルトの名無しさん
2022/09/29(木) 10:45:31.47ID:6obmiat7 >>395
元々コンテナコンポーネントに書く必要がないようなロジックの話をしてるつもりはないんだよなぁ
React無関係なロジックを普通の関数に切り出す話ならReactスレで話さなくていいだろ
状態やライフサイクルなどReactに依存したロジックを切り出すならuseStateやuseEffectを使う関数になりそれはカスタムhooksと呼ばれるということ
元々コンテナコンポーネントに書く必要がないようなロジックの話をしてるつもりはないんだよなぁ
React無関係なロジックを普通の関数に切り出す話ならReactスレで話さなくていいだろ
状態やライフサイクルなどReactに依存したロジックを切り出すならuseStateやuseEffectを使う関数になりそれはカスタムhooksと呼ばれるということ
397デフォルトの名無しさん
2022/09/29(木) 10:54:55.41ID:clewMKt/ ステートレスなロジックも意味なくhooksとして?実装するとでも言うのかい?
398デフォルトの名無しさん
2022/09/29(木) 11:20:12.57ID:vsyIBCv9 ごめん、一番聞きたかったのは
コールバック等使ったpropsの逆流(リフトアップ?)のことなんだけど
例えば、ダイアログ等実装する場合recoil使ってstate管理すれば簡単に実装出来ると思うんだけど
わざわざリフトアップする必要ってあるの??
コールバック等使ったpropsの逆流(リフトアップ?)のことなんだけど
例えば、ダイアログ等実装する場合recoil使ってstate管理すれば簡単に実装出来ると思うんだけど
わざわざリフトアップする必要ってあるの??
399デフォルトの名無しさん
2022/09/29(木) 11:41:08.20ID:RG+lw4Yl 俺の場合はコントロールの状態は極力propsで渡して
そのコントロール起因で発生した状態の変更は
そのコントロールの外部からディスパッチして
またコントロールのpropsとして再投入するパターンに落ち着いた
そのコントロール起因で発生した状態の変更は
そのコントロールの外部からディスパッチして
またコントロールのpropsとして再投入するパターンに落ち着いた
400デフォルトの名無しさん
2022/09/29(木) 12:43:16.88ID:N+5tSsEm 全部props渡しはどのコンポーネントが何のデータに依存してるか明確にわかるのが好き
401デフォルトの名無しさん
2022/09/29(木) 13:42:04.91ID:RG+lw4Yl propsて受け取った状態を
内部てstateとして別管理すると嵌まるパターンが多いね
内部てstateとして別管理すると嵌まるパターンが多いね
402デフォルトの名無しさん
2022/10/04(火) 20:36:43.24ID:R+w5qX88 React勉強中です
テーブルが例えば最大行数20行として、新しいデータを取得するたびに先頭行に追加、末尾データは削除、というのをしたいです。
以前直接DOMを操作していたときは、テーブルのElementに対し、insertRow()、deleteRow()を行っていました。
これをReactでやろうとした時、テーブルの各行のデータを配列で持っているとすると、下記のようにmapを使って各行のHTMLを生成するというやりかたがあるかと思いますが、
この場合は行の追加の度に全行が再レンダリングされてしまいますよね?
const table_data = ['a', 'b', 'c', 〜]
return(
<tbody>
{
table_data.map((val) =><tr><td>{val}</td></tr>)
}
</tbody>
)
前述のような先頭行に追加、末尾行は削除、というのをReactでやるとすると、どいういう感じの処理になるのでしょうか?
ヒントをいただけると助かります。
まずは、1行ずつをコンポーネントにするのは必須ですかね?
テーブルが例えば最大行数20行として、新しいデータを取得するたびに先頭行に追加、末尾データは削除、というのをしたいです。
以前直接DOMを操作していたときは、テーブルのElementに対し、insertRow()、deleteRow()を行っていました。
これをReactでやろうとした時、テーブルの各行のデータを配列で持っているとすると、下記のようにmapを使って各行のHTMLを生成するというやりかたがあるかと思いますが、
この場合は行の追加の度に全行が再レンダリングされてしまいますよね?
const table_data = ['a', 'b', 'c', 〜]
return(
<tbody>
{
table_data.map((val) =><tr><td>{val}</td></tr>)
}
</tbody>
)
前述のような先頭行に追加、末尾行は削除、というのをReactでやるとすると、どいういう感じの処理になるのでしょうか?
ヒントをいただけると助かります。
まずは、1行ずつをコンポーネントにするのは必須ですかね?
403デフォルトの名無しさん
2022/10/04(火) 21:43:53.97ID:ZExEo8/e404デフォルトの名無しさん
2022/10/04(火) 22:08:33.94ID:R+w5qX88405デフォルトの名無しさん
2022/10/05(水) 00:29:27.00ID:zhKCpglg keyはどのみち付けないとWarning出るね
バックエンド連携とかどうするつもりなのか知らんけど
普通に先頭20件だけ表示するように指定してやって
useEffectでtable_dataを監視してやればすんなり行きそうだけどなぁ
バックエンド連携とかどうするつもりなのか知らんけど
普通に先頭20件だけ表示するように指定してやって
useEffectでtable_dataを監視してやればすんなり行きそうだけどなぁ
406デフォルトの名無しさん
2022/10/05(水) 10:49:27.30ID:RsX5Dgpw >>405
ありがとうございます。
useStateでテーブル用データの配列を管理し、データ取得されるたびにその配列の先頭に追加、sliceで20件だけ切り出し、という方法でやりたいことはできました。
ユニークなkeyを付けることで再レンダリング対象が更新部分だけになるのも確認できました。
データはWebSocketで受信して取得しますが、どなたかのサイトで紹介されていた、コンポーネント内のuseRefでWebSocketオブジェクトを持ち、useEffectで初回時のみに接続するという方法でとりあえあず動作しました。
ありがとうございます。
useStateでテーブル用データの配列を管理し、データ取得されるたびにその配列の先頭に追加、sliceで20件だけ切り出し、という方法でやりたいことはできました。
ユニークなkeyを付けることで再レンダリング対象が更新部分だけになるのも確認できました。
データはWebSocketで受信して取得しますが、どなたかのサイトで紹介されていた、コンポーネント内のuseRefでWebSocketオブジェクトを持ち、useEffectで初回時のみに接続するという方法でとりあえあず動作しました。
407デフォルトの名無しさん
2022/11/05(土) 23:06:02.94ID:uWVkhL+y react native詳しいニキ教えて
下部に表示されるメニューバー(以下、Menu)のコンポーネント作ってて
ページによって表示/非表示の設定をしたいんだ
各ページコンポーネントでMenuを直接呼び出すような作りにすれば確かに実装出来るけど
ページが切り替わった時点でアニメーションが途切れるし、なによりナンセンスな気がする
で、次の案。
App→Main→各ページという構成を取ってるけど
MainでMenuを呼び出すようにした。
で、これをRecoilで管理するboolean型のグローバルstateで表示/非表示にする。
あとは各ページの初回レンダリング時にstateの値を書き換えるだけで解決……と思ったけど
前のページにバックしたときに改めてstateの値が書き換わらないんだ。
これを踏まえて何かいい方法ないですか?
下部に表示されるメニューバー(以下、Menu)のコンポーネント作ってて
ページによって表示/非表示の設定をしたいんだ
各ページコンポーネントでMenuを直接呼び出すような作りにすれば確かに実装出来るけど
ページが切り替わった時点でアニメーションが途切れるし、なによりナンセンスな気がする
で、次の案。
App→Main→各ページという構成を取ってるけど
MainでMenuを呼び出すようにした。
で、これをRecoilで管理するboolean型のグローバルstateで表示/非表示にする。
あとは各ページの初回レンダリング時にstateの値を書き換えるだけで解決……と思ったけど
前のページにバックしたときに改めてstateの値が書き換わらないんだ。
これを踏まえて何かいい方法ないですか?
408デフォルトの名無しさん
2022/11/05(土) 23:47:25.78ID:ocl/XM+V 知らんけどrecoil-syncってのがあるらしいな知らんけど
409.NET MAUI HighSchool
2022/11/11(金) 12:32:52.36ID:kw0okeTL Metaが倒産したらReactどうなってしまうんだ?ってレス見たんだけどほんとどうなってしまうん?
誰かに買われるとか???
誰かに買われるとか???
410デフォルトの名無しさん
2022/11/11(金) 12:42:14.20ID:BY70aiHB Vercelは確実に欲しがる。Remixを買ったShopifyも欲しがるかも。Googleが掻っ攫うかもしれない
411.NET MAUI HighSchool
2022/11/11(金) 12:43:10.48ID:kw0okeTL やっぱり大手に買われるのか…
412デフォルトの名無しさん
2022/11/11(金) 13:19:40.85ID:P8cdLDDc React NativeはMSが持っていきそう
413.NET MAUI HighSchool
2022/11/11(金) 13:20:58.38ID:kw0okeTL414デフォルトの名無しさん
2022/11/21(月) 04:31:38.78ID:9tdtmBpP415デフォルトの名無しさん
2022/11/21(月) 19:55:26.69ID:WHQv7Vmu >>414
入ったプロジェクトがこんな状態になってたらマネージャーかリーダーの判断力があやしすぎて即転職考えるかもしれん
入ったプロジェクトがこんな状態になってたらマネージャーかリーダーの判断力があやしすぎて即転職考えるかもしれん
416デフォルトの名無しさん
2022/11/21(月) 20:03:57.34ID:WHQv7Vmu (試みとしては面白いと思うけど)
417デフォルトの名無しさん
2022/11/21(月) 20:32:50.68ID:530w1iq8 hyperTextじゃん
418デフォルトの名無しさん
2022/11/21(月) 20:33:18.27ID:530w1iq8 textじゃねえやHyperScript
419デフォルトの名無しさん
2022/11/21(月) 20:54:44.24ID:F57+7x5h ClojureScriptでReact使うのがまんまそんなだった
Lisp界隈の人はなんでもS式だからな
Lisp界隈の人はなんでもS式だからな
420デフォルトの名無しさん
2022/11/22(火) 07:44:22.59ID:XlS3y7OH421デフォルトの名無しさん
2022/11/22(火) 09:58:17.91ID:J3G+pIhw それならここに来る必要ないやろ
422デフォルトの名無しさん
2022/11/23(水) 04:11:09.42ID:TMK4+5Kw reactでjsx使わない話なんだけどダメ?
タグ手打ちで補完が効かないhyperscriptとかもっとマイナーななんとかhelperとか
誰も使ってない怪しいライブラリに頼らずとも自分で200行コード書くだけで
jsx使わないで済むのは自分は衝撃だった。
見たことない構文だけどただのjsなんで補完もインデントも問題なし。閉じタグ書かなくていい。
[div, {className: 'game-info'},
[div, status,],
[ol, moves,],
],
タグ手打ちで補完が効かないhyperscriptとかもっとマイナーななんとかhelperとか
誰も使ってない怪しいライブラリに頼らずとも自分で200行コード書くだけで
jsx使わないで済むのは自分は衝撃だった。
見たことない構文だけどただのjsなんで補完もインデントも問題なし。閉じタグ書かなくていい。
[div, {className: 'game-info'},
[div, status,],
[ol, moves,],
],
423デフォルトの名無しさん
2022/11/23(水) 04:25:07.28ID:mlnYnqLg jQuery絶対王者
424デフォルトの名無しさん
2022/11/23(水) 05:07:49.07ID:AN01Xhf0 >>422
チームで合意が取れてれば良いんじゃないかな
自分は好みとかあまりなくて標準だったりプロジェクトだったりに適応するのが好きだから
プロジェクトでそうなってたら合わせるかな
もちろん自分が一からやるなら現時点で大勢が使ってる標準的なjsxを使うし
チームで合意が取れてれば良いんじゃないかな
自分は好みとかあまりなくて標準だったりプロジェクトだったりに適応するのが好きだから
プロジェクトでそうなってたら合わせるかな
もちろん自分が一からやるなら現時点で大勢が使ってる標準的なjsxを使うし
425デフォルトの名無しさん
2022/11/23(水) 08:06:55.32ID:Wy3yaUuF html in jsはカッコ地獄で使い続けられないと思った
mapや三項演算が組み合わさると、あっという間にreadabilityも破綻
jsxは < > 構文なのでカッコに関してはマシ
mapや三項演算が組み合わさると、あっという間にreadabilityも破綻
jsxは < > 構文なのでカッコに関してはマシ
426デフォルトの名無しさん
2022/11/23(水) 09:09:30.10ID:6E3xEeS7 HTMLをHTMLとして認識しにくいのはイヤ
427デフォルトの名無しさん
2022/11/23(水) 13:34:39.63ID:Y3sgMMcN jsx ももはやただのjsなんで補完もインデントも問題ないんだよなあ
閉じタグはあった方が見やすいしこれも補完聞くから書くのも手間じゃないし
閉じタグはあった方が見やすいしこれも補完聞くから書くのも手間じゃないし
428デフォルトの名無しさん
2022/11/23(水) 14:08:23.15ID:kuPI2CLi JSXの構文はもっと省略できるよね
429デフォルトの名無しさん
2022/11/23(水) 14:20:57.19ID:pkO67U6a ReactがFB内で生まれたのがES5より前だからかJSXでclassやforを属性名として使えないのはそろそろ修正してもいいと思うわ
430デフォルトの名無しさん
2022/11/23(水) 15:21:48.20ID:Q2Zz8xgu 逆にJSの言語仕様としてのクラスが要らんのやないかって感じするしな
431デフォルトの名無しさん
2022/11/23(水) 15:46:18.91ID:KqoXuT6V432デフォルトの名無しさん
2022/11/27(日) 18:18:42.40ID:DGQvXdXK reactでjsx使いたくないなReact.createElement使えばすむだろ
pure jsだしreact自身がメンテナだぞ
pure jsだしreact自身がメンテナだぞ
433デフォルトの名無しさん
2022/11/28(月) 16:39:23.37ID:bah5acf2 class使わんかったらええしjsxも受け入れればええやん
中途半端に色々俺ルール入れようとするからプロジェクト通したコードがグチャグチャになるんだよ
ガタガタ抜かさずに読みやすいコード書け
中途半端に色々俺ルール入れようとするからプロジェクト通したコードがグチャグチャになるんだよ
ガタガタ抜かさずに読みやすいコード書け
434デフォルトの名無しさん
2022/11/28(月) 17:59:40.28ID:IoJupQtf それはそう
435デフォルトの名無しさん
2022/11/28(月) 18:10:16.07ID:HJ3Js2uA React.createElement() は、見たことない。
クラスなのか?
今は、関数しか使わない
クラスなのか?
今は、関数しか使わない
436デフォルトの名無しさん
2022/11/28(月) 20:53:35.42ID:UVD224c9437デフォルトの名無しさん
2022/12/03(土) 08:35:21.91ID:taaLhEhL フロントエンドはAIとローコードにより死んでいきそう
438デフォルトの名無しさん
2022/12/03(土) 10:06:11.17ID:nGrXXmmc フロントエンドの連中が死んでいったら愉快すぎるだろうな。
439デフォルトの名無しさん
2022/12/03(土) 10:26:28.26ID:yzFmn8Js 管理画面作れるローコードツールやばいで?
t-wadaさんの会社が出資してるやつ
ガチでフロントエンドいらんw
t-wadaさんの会社が出資してるやつ
ガチでフロントエンドいらんw
440デフォルトの名無しさん
2022/12/03(土) 11:52:54.38ID:olmTGWDy できねぇ自分を棚に上げてよく言うぜ
441デフォルトの名無しさん
2022/12/03(土) 13:16:27.12ID:DRrYSu6r フロントエンドができるのは
どのくらいのレベル?
どのくらいのレベル?
442デフォルトの名無しさん
2022/12/04(日) 10:14:28.76ID:Mf+W6hFq https://pleasanter.org/
これとか使えそうだな
これとか使えそうだな
443デフォルトの名無しさん
2022/12/04(日) 11:54:38.25ID:Wvq70p6a 周りが適性なさすぎて消去法でバックエンドやるハメになり
苦労もあったが経験しておけて良かった
苦労もあったが経験しておけて良かった
444デフォルトの名無しさん
2022/12/08(木) 08:12:36.96ID:Z0lc4TAH ここ本スレ?
445デフォルトの名無しさん
2023/01/15(日) 12:22:06.03ID:c+nrjCWx みんなuseStateのとき以外でset~って関数名付けてる?
446デフォルトの名無しさん
2023/02/11(土) 08:10:49.33ID:vzM9dagC >>439
何? 使ってみたいから教えて
何? 使ってみたいから教えて
447デフォルトの名無しさん
2023/02/14(火) 00:24:32.69ID:L+R7vyp5 知らんけどAirtableとかじゃないの?
448デフォルトの名無しさん
2023/02/20(月) 17:20:13.84ID:o1ZyjHKj Reactが始めてなので変な質問かもしれません。
React.Componentを継承したクラスを作成し、これを「new」した時点でbodyの最後に描画したいです。
具体的にはmodalのクラスなのですが、
import modalClass from './modalClass';
const hoge = new modalClass(); //この時点でbodyの最後に描画されて
hoge.show(); //これで描画されたモーダルが表示される
だけでモーダルを表示したいです。
constructor中でrenderを実行して、戻り値をReact.Domでbodyの最後に置換すれば可能な気がしますが、
このような使い方は一般的でしょうか?
htmlに「<modalClass />」の記述をしたくありません。
React.Componentを継承したクラスを作成し、これを「new」した時点でbodyの最後に描画したいです。
具体的にはmodalのクラスなのですが、
import modalClass from './modalClass';
const hoge = new modalClass(); //この時点でbodyの最後に描画されて
hoge.show(); //これで描画されたモーダルが表示される
だけでモーダルを表示したいです。
constructor中でrenderを実行して、戻り値をReact.Domでbodyの最後に置換すれば可能な気がしますが、
このような使い方は一般的でしょうか?
htmlに「<modalClass />」の記述をしたくありません。
449デフォルトの名無しさん
2023/02/20(月) 17:53:11.21ID:1+J+V+Et >>448
一般的ではないね。ReactコンポーネントであればJSXに<Modal />などと書いておきReactのライフサイクルの中でstate更新して表示/非表示を制御するのが一般的。
あとDOMツリーに要素を「追加」する操作を「描画」と呼んでると今後の理解の妨げになる可能性があるから一回整理したほうが良いかも。(Reactはライフサイクルの意識が結構大事なため)
一般的ではないね。ReactコンポーネントであればJSXに<Modal />などと書いておきReactのライフサイクルの中でstate更新して表示/非表示を制御するのが一般的。
あとDOMツリーに要素を「追加」する操作を「描画」と呼んでると今後の理解の妨げになる可能性があるから一回整理したほうが良いかも。(Reactはライフサイクルの意識が結構大事なため)
450デフォルトの名無しさん
2023/02/20(月) 18:41:24.87ID:o1ZyjHKj はい、一般的ではないのは十分承知しています。
ライフサイクルなどを無視してHTMLの管理と描画のみにreactを使用したいと考えています。
ソースコードとしては下記で行けたのですが、このような使い方が一般的に許されるのかが不安です。
class ExampleComponent extends React.Component {
constructor(props) {
super(props);
const element = this.render();
const container = document.createElement('div');
document.body.appendChild(container);
ReactDOM.render(element, container);
}
show() {
//モーダル表示のDOMの操作
}
render() {
return (
<div>
/** モーダルのHTMLソース **/</div>
);
}
}
ライフサイクルなどを無視してHTMLの管理と描画のみにreactを使用したいと考えています。
ソースコードとしては下記で行けたのですが、このような使い方が一般的に許されるのかが不安です。
class ExampleComponent extends React.Component {
constructor(props) {
super(props);
const element = this.render();
const container = document.createElement('div');
document.body.appendChild(container);
ReactDOM.render(element, container);
}
show() {
//モーダル表示のDOMの操作
}
render() {
return (
<div>
/** モーダルのHTMLソース **/</div>
);
}
}
451デフォルトの名無しさん
2023/02/20(月) 18:48:10.50ID:o1ZyjHKj 動作するのは確認できたので、あとはプロジェクトリーダーの好み次第ですかね。
これが許されればサーバ側のviewでHTML管理しなくて済むようになりますので
コンポーネントの使いまわしが楽になるのですが。
javascriptのみで完結できるので。
これが許されればサーバ側のviewでHTML管理しなくて済むようになりますので
コンポーネントの使いまわしが楽になるのですが。
javascriptのみで完結できるので。
452デフォルトの名無しさん
2023/02/20(月) 20:09:11.05ID:CBterFMa Reactをrender()するHTML要素を動的に追加するのはありだと思うよ
でもそのロジックをReactコンポーネントに入れる必要はないな
ユーティリティな関数でそれをすればReactコンポーネントはクラスではなく関数コンポーネントにもできるし
でもそのロジックをReactコンポーネントに入れる必要はないな
ユーティリティな関数でそれをすればReactコンポーネントはクラスではなく関数コンポーネントにもできるし
453デフォルトの名無しさん
2023/02/20(月) 20:40:21.95ID:1+J+V+Et まず動くようにしたのは素晴らしいけど、たぶんリーダーかは指摘が入るはず。
454デフォルトの名無しさん
2023/02/20(月) 21:16:51.58ID:zSsoBtA6 最初はお手本通りrender関数とコンポーネント挿入関数に2ファイルに別けてたのですが、
一機能実現するために手順を踏んで2ファイル使うのが解り辛いかなと思いました。
作った自分は解るのですが、引き継ぐ人にはシンプルな手順で使えるようにしておきたいです。
render関数とコンポーネントの挿入関数を試行錯誤して一つのファイルにまとめたら >>450のようになりました。
>>450なら
import ExampleComponent from './examplecomponent';
const modal = new ExampleComponent ();
modal.show("メッセージです", "タイトル");
だけで済むので、クラスのusageに書いておけば利用手順も簡単でどの画面でも使えると思います。
reactの定石からは離れますので、やはりreactのプロの目から見ると違和感あるのですね。
一機能実現するために手順を踏んで2ファイル使うのが解り辛いかなと思いました。
作った自分は解るのですが、引き継ぐ人にはシンプルな手順で使えるようにしておきたいです。
render関数とコンポーネントの挿入関数を試行錯誤して一つのファイルにまとめたら >>450のようになりました。
>>450なら
import ExampleComponent from './examplecomponent';
const modal = new ExampleComponent ();
modal.show("メッセージです", "タイトル");
だけで済むので、クラスのusageに書いておけば利用手順も簡単でどの画面でも使えると思います。
reactの定石からは離れますので、やはりreactのプロの目から見ると違和感あるのですね。
455デフォルトの名無しさん
2023/02/20(月) 23:39:55.71ID:qmqKnMRQ Windowsアプリのメッセージダイアログみたいにメソッドひとつで呼び出せる手軽さを実現したいって理解でいいのかな
456デフォルトの名無しさん
2023/02/21(火) 02:04:19.05ID:R25lIONK あちこちに<ExampleComponent />追加したくないってことかな?その場合はProviderやContextを使うのが正式なやり方になると思う。
レイアウトに1個<ExampleComponent />追加する程度はふつうにやることなのでそれはみんなわかると思う。
レイアウトに1個<ExampleComponent />追加する程度はふつうにやることなのでそれはみんなわかると思う。
457デフォルトの名無しさん
2023/02/21(火) 08:04:52.44ID:pYWIE5Lo >Windowsアプリのメッセージダイアログみたいにメソッドひとつで呼び出せる手軽さを実現したいって理解でいいのかな
はい、それであっています。
>あちこちに<ExampleComponent />追加したくないってことかな?
はい、ReactのメリットはJavascriptにHTMLを書ける事なので、HTMLとの依存関係を切って
なるべくJavascriptだけで完結させたいです。
とくにモーダルのような汎用的などこでも使うものは、HTMLに<ExampleComponent />を記述させたくないです。
はい、それであっています。
>あちこちに<ExampleComponent />追加したくないってことかな?
はい、ReactのメリットはJavascriptにHTMLを書ける事なので、HTMLとの依存関係を切って
なるべくJavascriptだけで完結させたいです。
とくにモーダルのような汎用的などこでも使うものは、HTMLに<ExampleComponent />を記述させたくないです。
458デフォルトの名無しさん
2023/02/21(火) 13:34:11.33ID:5AAcCPtU メッセージダイアログ、確認ダイアログ、エラーダイアログなんかの共通系は
どこでも仕込みなしで呼び出したい
あるあるな要求だと思うけどReactではどうやるのが定石なんだろうね
どこでも仕込みなしで呼び出したい
あるあるな要求だと思うけどReactではどうやるのが定石なんだろうね
459デフォルトの名無しさん
2023/02/21(火) 13:52:30.32ID:pYWIE5Lo レイアウトが必要なコンポーネントは、HTMLファイルにreactのタグを埋め込む方向で理解できるのですが
メッセージダイアログのような画面中のレイアウトが必要無い物については
わざわざHTMLファイルにタグ埋め込んでおく必要ないのではと考えています。
javascriptで動的にタグを埋め込むのが良いと思いますが、タグ埋め込む機能をrender機能のファイルと別けたくないですね。
メッセージダイアログのような画面中のレイアウトが必要無い物については
わざわざHTMLファイルにタグ埋め込んでおく必要ないのではと考えています。
javascriptで動的にタグを埋め込むのが良いと思いますが、タグ埋め込む機能をrender機能のファイルと別けたくないですね。
460デフォルトの名無しさん
2023/02/21(火) 14:46:08.62ID:4BxaQg+7 Railsとかの既存画面にReactでモーダルだけ作ろうって話?
jQueryの代わりにReactみたいな使い方ならその時点で定石から外れてるわな
jQueryの代わりにReactみたいな使い方ならその時点で定石から外れてるわな
461デフォルトの名無しさん
2023/02/21(火) 14:59:48.47ID:5AAcCPtU いや、そういう話ではないよ
462デフォルトの名無しさん
2023/02/21(火) 15:18:03.61ID:4BxaQg+7 へ?普通にSPA?
それなのにDOMのエレメント作ってrender()呼ぶって?ただのアホじゃん
それなのにDOMのエレメント作ってrender()呼ぶって?ただのアホじゃん
463デフォルトの名無しさん
2023/02/21(火) 16:09:35.73ID:5AAcCPtU そりゃ動機があって試行錯誤の中でイレギュラーなことをしていて
より良い方法、より一般的な方法はないかという問いかけなんだし
より良い方法、より一般的な方法はないかという問いかけなんだし
464デフォルトの名無しさん
2023/02/21(火) 16:42:00.18ID:4BxaQg+7 試行錯誤にしても道を外れすぎ
React.renderはReactアプリ(コンポーネントツリー)全体をDOMにマウントするためのAPIで個々のコンポーネントが呼び出すもんじゃない
大抵はフレームワーク的なコード(CRAやNext.js)が呼び出すからアプリからは呼ばない
共通のモーダルコンポーネントはAppコンポーネントなどツリーのルート近くに一つだけ置く
そしてモーダルはそれを開くためのカスタムフックを利用者に提供する
モーダルの開閉制御に使うステートはRedux等のライブラリを使ってもいいしContext + useStateでもいい
React.renderはReactアプリ(コンポーネントツリー)全体をDOMにマウントするためのAPIで個々のコンポーネントが呼び出すもんじゃない
大抵はフレームワーク的なコード(CRAやNext.js)が呼び出すからアプリからは呼ばない
共通のモーダルコンポーネントはAppコンポーネントなどツリーのルート近くに一つだけ置く
そしてモーダルはそれを開くためのカスタムフックを利用者に提供する
モーダルの開閉制御に使うステートはRedux等のライブラリを使ってもいいしContext + useStateでもいい
465デフォルトの名無しさん
2023/02/21(火) 17:16:01.15ID:i5fGgfrB 試行錯誤ってのはそんなもんでしょ
まして最初にReactに不慣れだと断ってるわけだし
寛容にいこうよ
まして最初にReactに不慣れだと断ってるわけだし
寛容にいこうよ
466デフォルトの名無しさん
2023/02/21(火) 18:46:29.89ID:pYWIE5Lo イレギュラーなやり方ということは重々承知しています。
自分のやり方はreactのフル機能を使うよりも、ESM+Reactの機能の一部を使ったやり方になり
Reactの恩恵を受けられない事を承知しています。
その上で使い勝手を選択して、react機能の一部のみを使った開発を行うのもありなのではと思ったりしています。
ダイアログなどの静的なコンテンツについてはreactの機能を全て使い切らなくとも、reactが無くとも実現できますし、
reactの性能を発揮できる開発内容でもないと思っています。
静的HTMLのページをreactで作るのが効率悪いのと同様に、静的なダイアログ程度のものについてもreact使わない方が良いんじゃないかと。
その上で便利な部分(javascript上でHTMLを共有化できる)だけ摘まみ食いしたいです。
reactの専門家から見ると節操無いでしょうが、開発効率や汎用性を考えた場合に
こういったやり方はどうなんでしょうかと意見を」聞きたかったです。
自分のやり方はreactのフル機能を使うよりも、ESM+Reactの機能の一部を使ったやり方になり
Reactの恩恵を受けられない事を承知しています。
その上で使い勝手を選択して、react機能の一部のみを使った開発を行うのもありなのではと思ったりしています。
ダイアログなどの静的なコンテンツについてはreactの機能を全て使い切らなくとも、reactが無くとも実現できますし、
reactの性能を発揮できる開発内容でもないと思っています。
静的HTMLのページをreactで作るのが効率悪いのと同様に、静的なダイアログ程度のものについてもreact使わない方が良いんじゃないかと。
その上で便利な部分(javascript上でHTMLを共有化できる)だけ摘まみ食いしたいです。
reactの専門家から見ると節操無いでしょうが、開発効率や汎用性を考えた場合に
こういったやり方はどうなんでしょうかと意見を」聞きたかったです。
467デフォルトの名無しさん
2023/02/21(火) 19:00:38.86ID:YV4X7nvq468デフォルトの名無しさん
2023/02/21(火) 19:34:17.35ID:+X0VWij1 >>466
結局何をどう作ろうとしてるのかわからないんだよな
Reactで完全なSPAなら最初から449や456が書いてるとおりだし464も同じことを書いてる
しかし451の「サーバ側のview」とか466の「react機能の一部のみを使った開発」なら460に見えるんだよな
それなら452だろう
454で変なこと書いてるけど1ファイル1関数に制限さb黷驍けじゃなb「んだから2ファイルに分けたくなけりゃ分けなければいいだけ
結局何をどう作ろうとしてるのかわからないんだよな
Reactで完全なSPAなら最初から449や456が書いてるとおりだし464も同じことを書いてる
しかし451の「サーバ側のview」とか466の「react機能の一部のみを使った開発」なら460に見えるんだよな
それなら452だろう
454で変なこと書いてるけど1ファイル1関数に制限さb黷驍けじゃなb「んだから2ファイルに分けたくなけりゃ分けなければいいだけ
469デフォルトの名無しさん
2023/02/21(火) 19:38:08.77ID:zF6zP+5N つまり……
・他のreactコンポーネントから利用されるreactコンポーネントを作ってる
のか
・reactで作ってるけど利用する側はreactとか気にしないで使う
なのかどっちなんだという話
・他のreactコンポーネントから利用されるreactコンポーネントを作ってる
のか
・reactで作ってるけど利用する側はreactとか気にしないで使う
なのかどっちなんだという話
470デフォルトの名無しさん
2023/02/21(火) 19:41:59.71ID:pYWIE5Lo >>464の提示してるやり方はどう?
react的にはスマートなやり方なのでしょうが、react使わない方が実装手順を簡略化できるのでメリットを感じないです。
>>・reactで作ってるけど利用する側はreactとか気にしないで使う
の方です。
関わっているプロジェクトがこれからreactに乗り換えような流れなので、新規開発分からreactで作り始めているのですが、
そもそものベースがreactではないので、reactの便利な所だけ利用したい感じですね。
react的にはスマートなやり方なのでしょうが、react使わない方が実装手順を簡略化できるのでメリットを感じないです。
>>・reactで作ってるけど利用する側はreactとか気にしないで使う
の方です。
関わっているプロジェクトがこれからreactに乗り換えような流れなので、新規開発分からreactで作り始めているのですが、
そもそものベースがreactではないので、reactの便利な所だけ利用したい感じですね。
471デフォルトの名無しさん
2023/02/21(火) 19:54:51.48ID:zF6zP+5N472デフォルトの名無しさん
2023/02/21(火) 20:09:31.38ID:pYWIE5Lo >>471
多分言っている事を理解しました。
reactによるコンポーネント作成と表示する関数は別けたいと思います。
ファイルを別けるのには違和感がありましたが、同一ファイル内で2関数実装して
片方だけexportするなら理想通りです。
一度サンプルソースを作成してリーダーに相談してみます。
ありがとうございました。
多分言っている事を理解しました。
reactによるコンポーネント作成と表示する関数は別けたいと思います。
ファイルを別けるのには違和感がありましたが、同一ファイル内で2関数実装して
片方だけexportするなら理想通りです。
一度サンプルソースを作成してリーダーに相談してみます。
ありがとうございました。
473デフォルトの名無しさん
2023/02/22(水) 00:14:36.76ID:wXAQdOu8 実装者しか分からん負の遺産はこうやって増えていくんですね
自己満のためにプロジェクトを良くない方向に進めている自覚を持ちましょう。
あなたのやっていることは時間の無駄です。
自己満のためにプロジェクトを良くない方向に進めている自覚を持ちましょう。
あなたのやっていることは時間の無駄です。
474デフォルトの名無しさん
2023/02/22(水) 02:31:50.15ID:DPknPTwq だけど、いくらきれいに書いたとしても、後任者がアレな場合、結局、良くない方向に進む(本人たちは満足)なので、どないしようもない気がします
(という現場をよく見てきたので、どないしようもないですね)
(という現場をよく見てきたので、どないしようもないですね)
475デフォルトの名無しさん
2023/02/22(水) 21:02:05.11ID:ek8Yt4/u きれいなだけではダメで意図とか背景にある思想とかそういったものをちゃんと伝えておかないと
今回みたいに定石から外れることを自覚してるならなおさら
今回みたいに定石から外れることを自覚してるならなおさら
476デフォルトの名無しさん
2023/02/26(日) 16:09:53.37ID:7ZfAUNQ9 でも必死こいてゲットしたマイナポイントも結局使わないまま失効するんだろどうせ
477デフォルトの名無しさん
2023/02/26(日) 16:10:31.65ID:7ZfAUNQ9 スマン誤爆
478デフォルトの名無しさん
2023/02/26(日) 17:52:01.97ID:+WhKwZG4 >>476
必死こいで使おう
必死こいで使おう
479デフォルトの名無しさん
2023/09/09(土) 09:35:09.94ID:XstChhEA (>ェ<;
480デフォルトの名無しさん
2023/10/18(水) 11:53:52.23ID:pKa2ZouW redux!!
481デフォルトの名無しさん
2024/09/03(火) 11:41:52.36ID:a/z1r+/G 外部cssをimportじゃなくてhead要素に入れたいんだけど(scriptタグ多いのが嫌なだけ)、ドキュメントだとShowRenderedHTMLがいいって書いてあるっぽいけど他の方法あるのかな?無いならこれ使ってみる
Helmetで出来るもんだと思ってたんだけどなあ
Helmetで出来るもんだと思ってたんだけどなあ
482デフォルトの名無しさん
2025/10/09(木) 11:30:36.78ID:Z8SX7vJx Meta一社からReact Fundation管理になったけど、どう変わるかな?
名実ともにExpoやMicrosoftがオフィシャルになったからReactNative加速しそう?
名実ともにExpoやMicrosoftがオフィシャルになったからReactNative加速しそう?
レスを投稿する
