22/01/16 23:50:47.88 Ww+icYU/.net
ここで良い
向こうのスレは無関係なjQueryが唐突に入れられている
12:デフォルトの名無しさん
22/01/17 00:11:09.64 tcFWlbRO.net
向こうのスレは荒らしが立てた事を証明する捨て台詞がご丁寧にも書いてあるしね
13:デフォルトの名無しさん
22/01/17 12:41:22.76 nV7XcMJz.net
Reactはいいフレームワークだけどフロントって非同期使いまくるのに非同期の扱いが残念なのがちょっとね
他のSPAフレームワークって使った事ないけど非同期はどうなんだろう
14:デフォルトの名無しさん
22/01/17 12:48:41.83 piunERDu.net
>>13
まず最初にお前が理想のフレームワークをいえ
Reactが残念なんじゃなくて
お前が非同期処理を理解できないだけだろ
まるでプログラミングを勉強したくないけど
なんか凄いものを作りたい、簡単に使える言語ないの?って
言ってるようだ
15:デフォルトの名無しさん
22/01/17 13:01:07.87 nV7XcMJz.net
>>14
レベル低すぎて相手するのも面倒なレスだけどreactが非同期ニガテなのは常識だよ
今までずっと正解らしい正解がみんなで共有できてなくてuseState、useEffectで分かりにくい処理を地道に書く、それらをラップするオレオレフックを作る、別のサードパーティフレームワークを付け足して使う、などなどそれはもう、迷走しまくってた
reactが世に出てもう何年経ったかわからんが、最近になってようやっと公式が重い腰を上げて、Suspenseに取り組み始めたけど、これだって今までよりはマシかもって程度であって、けして非同期が楽だとは言えない代物
そんで楽してすごいものを作りたい、というのはフレームワークの存在意義そのものであって、それを否定するのは何も理解してない車輪の再発明マニアだけだ
16:デフォルトの名無しさん
22/01/17 13:01:29.47 OoRE99LP.net
>>13
そうかなぁ、useEffectで非同期拾ってstate変えたら全部スパッと変わるんだから、やりやすいと思う。useEffectは非同期関数食ってくれないけども
17:デフォルトの名無しさん
22/01/17 13:09:21.87 OoRE99LP.net
と思ったけどそういうレベルの話ではなさそうだな
18:デフォルトの名無しさん
22/01/17 13:13:12.62 nV7XcMJz.net
>>16
いや、あれはわかりにくい
依存関係とか諸々含めて、誰でもすんなり理解して間違いなく使える仕様とは思えん
必ずどこかでハマるように出来てる
つうか、完全に理解したとしても冗長な記述が多すぎる
reactの仕様を大きく変えてasync JSXタグをサポートするべきだと思うんだよな
例えばこういうの↓
const FooView = async () => {
try {
const foo = await fetchFoo();
return <View>
<Text>{foo.name}</Text>
<Text>{foo.age}</Text>
<View>
}
catch (e) { return <ErrorView error={e} /> }
}
もし仮にここまで出来れば俺は「reactは非同期が楽」と言っていいと思うぞ
つーかこんなんreactの開発者レベルならとっくに気付いてる筈なんだが
怠慢なのかわからんが、非同期をずっと放置し続けてきた
19:デフォルトの名無しさん
22/01/17 14:23:54.47 OoRE99LP.net
>>18
あーなるほど。確かにそこまでサポートされてれば楽かもな~。
待ってる間はFragmentが入るようになってれば(多少柔軟性は落ちても)同期部分とも連携は取れると。
俺はそこまでは要らないかな。でもなるほどね
20:デフォルトの名無しさん
22/01/17 14:33:09.18 OoRE99LP.net
>>18
いや待て、そこでfetchしたら駄目じゃね?
21:デフォルトの名無しさん
22/01/17 15:31:40.92 mFMlok3x.net
>>20
機能を提供するのはよいぞ
どう使うかは宗教のもんだい
22:デフォルトの名無しさん
22/01/17 18:31:36.68 srH4p//H.net
fetchFooが何度も走るからその場所はマズくね?
23:デフォルトの名無しさん
22/01/17 18:44:23.62 8GhjbW2b.net
useSWRを使ってみるとか
(まだ使ったことないけど)
見た感じそれなりに使いやすそう?
import useSWR from 'swr'
function Profile() {
const { data, error } = useSWR('/api/user', fetcher)
if (error) return <div>failed to load</div>
if (!data) return <div>loading...</div>
return <div>hello {data.name}!</div>
}
24:デフォルトの名無しさん
22/01/17 19:25:32.08 05fLKY0G.net
>>23
単純なケースでしか通用しない気がするけどいけるんかな?
25:デフォルトの名無しさん
22/01/17 19:25:53.20 dRyGD2/c.net
>>18
コンポーネントにガッツリ副作用入れてどうすんだよw
26:デフォルトの名無しさん
22/01/17 23:06:59.06 piunERDu.net
はっはっは、だから言ったろ
お前が非同期処理を理解してないって
想像した通りに動いてくれるわけじゃないのだよ
不可能なことは、不可能
27:デフォルトの名無しさん
22/01/17 23:11:50.20 ZqR63tdH.net
>>18
そんなバグの温床になりそうなコード書くくらいなら、
componentDidMountでfetchして、素直にsetStateしとけ
それで済む話だろ
28:9
22/01/17 23:50:21.01 fRpijKvH.net
このスレは、荒らしが立てたスレです。
まともな人は、移動してください!
>>9-10
を参照
29:デフォルトの名無しさん
22/01/18 00:00:44.87 EicAqYVv.net
>>26
具体的な事言わずに批判だけするとか……老害かな?
30:デフォルトの名無しさん
22/01/18 00:30:02.59 lZlxHH3x.net
>>22
パラメータが変わらなければ同じpromiseが再利用されるので問題ない
31:デフォルトの名無しさん
22/01/18 15:39:09.53 WUNUlNdf.net
>>30
fetchFooは(シングルトンみたく)何度呼び出しても同じPromiseを返すって事か。それなら確かに問題ない。
そう云うPromiseを作るhookと待ってる間はFragment(か何かをDOMに接続)、あとエラー時用のインターフェイス(Promise関連だからcatchメソッドで良いか)が必要、と。
う~ん、俺はuseEffectでいいやw