React と React Native のスレ

2019/03/09(土) 21:29:27.97ID:AJ6jPa0v
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. 両方です。どっちの話題をしているかは文脈で判断してください
2021/11/21(日) 17:55:48.39ID:Wm1mwUDt
オブジェクト指向のテクニックを使ってるだけでやってることはただの構造化なんだよな
所詮は構文の違いでしかない

こうですか
最後は全部ただの機械語ですしね!
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
2021/11/21(日) 20:55:13.47ID:SJq+O3t2
しつこい
2021/11/21(日) 21:04:01.25ID:5qd0Nwtv
ふむ、反論ができなくなったのかな?
2021/11/21(日) 21:16:31.74ID:zzbPLRQo
石頭の老害相手に反論しても無駄
2021/11/21(日) 22:35:19.11ID:UWSF5n1L
馬鹿は論破できない
2021/11/22(月) 10:00:05.25ID:HTg16b0P
今どきfunctionって書くか?
2021/11/22(月) 14:12:56.45ID:yxcpONXb
書かない
2021/12/03(金) 10:05:55.29ID:OvhoAu9V
ボタン連打するけしからん奴対策の定番ライブラリ教えてよ
送信フラグ管理はもう疲れた
あ、いちおクロスプラットフォームのライブラリでヨロ
2021/12/03(金) 16:35:10.63ID:ZR9gqQ7Z
ボタン押下で実行されるのをステートの値をtrueにするのみのsetAnyState(true)とかにして
実処理を
useEffect(()=>{if(anyState){
// 実際したい処理
setAnyState(false)
}},[anyState])
にしとけば連打されても大丈夫じゃね?
2021/12/03(金) 18:25:47.16ID:C14FVshC
ボタンが押されたらボタンをdisabledにすればいいじゃん
2021/12/03(金) 19:41:18.43ID:L4TUqIiQ
わろた
2021/12/03(金) 19:41:36.25ID:50htZSL3
それだとめっちゃ高速にダブルクリックした場合多分イベント2回来る場合ある
2021/12/03(金) 20:19:23.32ID:mMKMUGdN
JavaScriptはシングルスレッド
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には直接アクセスできない
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]
2021/12/06(月) 20:07:50.83ID:4QzxG6KH
とりあえずこれ読んどけ
https://blog.uhy.ooo/entry/2021-02-23/usecallback-custom-hooks/
2021/12/06(月) 20:11:27.69ID:4QzxG6KH
>>236
1行目訂正

useEffectもuseMyHookでやるべきじゃねーの
2021/12/06(月) 22:16:00.54ID:zN0DCcOz
>>236
thank you.
2021/12/08(水) 14:16:37.56ID:/W89KInL
function MyComp () {
const vm = useMyCompViewModel();
return <略 />;
}

MyCompのユニットテストする時ってどうしてる?
つまりuseMyCompViewModelをインジェクトしたい時
2021/12/08(水) 15:51:56.43ID:5zVi58LJ
https://github.com/testing-library/react-hooks-testing-library
2021/12/08(水) 19:22:47.15ID:/W89KInL
>>241
d
でもこれフックのテスト用なのでは?
そうじゃなくフックをモック化してコンポーネントをテストしたい
2021/12/08(水) 21:33:33.67ID:Rfcvtfm3
テストだけならこんなんで十分じゃね
function MyComp (props) {
const useViewModel = props.useMyCompViewModel || useMyCompViewModel
const vm = useViewModel();
return <略 />;
}
2021/12/08(水) 21:48:07.68ID:lkzI+wPD
経年劣化に耐える ReactComponent の書き方
https://zenn.dev/takepepe/articles/howto-withstand-aging-react-component
2021/12/08(水) 22:23:21.01ID:SYjhTw/G
>>243
なるぼどなぁ
これで少しやってみよかな
2021/12/11(土) 11:45:52.40ID:zttGewLv
サードパーティコンポーネントが状態や副作用を持っているがこれを除去してステートレスにしたい
どうすればいい?ソースコードを書き換えるのは無しで
2021/12/11(土) 11:52:28.47ID:GrxR7SwR
プルリクエスト
2021/12/11(土) 12:05:31.62ID:zttGewLv
function IWantEasyTestableComponent(props) {
return (<View>
<FackingStatefullComponent foo={props.foo} />
<MyAwesomeStatelessComponent {…props} />
</View>);
}

こういうの、どうすりゃいいんだ?
野良ライブラリはどれもこれもアマチュアが好き勝手作ってるから、利便性はともかく品質のムラが大きすぎる
できれば使いたく無いが、使う前提で予算と工程を組まれる
オープンソースのダークサイドやね
2021/12/11(土) 12:21:22.59ID:GrxR7SwR
jest.mock('path/to/FackingStatefullComponent')
2021/12/11(土) 12:27:06.61ID:RI4P88iz
>>249
ソースコードの書き換えとどう違うんだそれ?
2021/12/11(土) 12:44:03.50ID:g9v4y15i
依存関係をインターフェース等で明示的に分離してインジェクションするポイントを作るという考え方ではなく
モジュール自体を上書きしてしまうことで無理やりインジェクションするということか
違和感が強いがこれがJavaScriptの文化と思って受け入れるしかないか
2021/12/12(日) 21:59:15.39ID:wsjthnMX
LogBox邪魔すぎる
機能OFFにできんのかコレ
2021/12/20(月) 09:27:19.20ID:vskoYLeQ
状態、副作用は親コンポーネントに持たせるべきか
子コンポーネントに持たせるべきか
2021/12/20(月) 17:18:10.57ID:hUMHHR9z
コンポーネントの用途に依る
基本的にはコンポーネントで独立してる方がいいと思う

ちゃんと精査すれば全体で管理しなきゃいけない状態ってそんなに多くないはず
2021/12/20(月) 18:51:15.00ID:DVSwWolF
以前は
親(コンテナ)コンポーネントで状態管理
子(プレゼンテーショナル)コンポーネントは表示だけ
ってのが流行ってたが廃れたな
再レンダリングが発生しやすいせいかな
2021/12/21(火) 15:04:20.98ID:2tghIxun
まあケースバイケースになるか

そこそこ複雑な入力ページなんだけど
親に状態を持たせると不定個数の状態の扱いがやりにくい
子に状態を持たせると親への通知がやりにくい
どっちでやってもスッキリしない
2021/12/21(火) 15:13:11.31ID:YHqQ6+Ts
入力フォームなら素直にreact-hook-form使え
2021/12/21(火) 15:40:04.62ID:ESVu6HO8
ほぉん
なかなか便利そう
どこまで複雑な入力ページに耐えられるか気になるところだけど
単純なフォームならこれで良さそうだ
2021/12/29(水) 00:29:54.67ID:ceh8LJAo
React完全に理解したがパフォーマンスの上げ方がわからねえ
2021/12/29(水) 00:50:07.29ID:b+BxW/Al
>>259
理解出来てねーーじゃん!
2021/12/29(水) 01:49:18.73ID:CcYJF9F8
完全に理解した=何もわからんだからな
チョットでかる=世界一わかってるだし
2022/01/04(火) 12:28:56.67ID:LToZWYYj
ブラウザデバッガで見て出てるエラー消すところからかな
あとreact-router使わんとページ遷移の度にDOM読み直しとかも効率悪い事この上ない
2022/01/05(水) 12:38:15.54ID:1AqA60VG
Reactの優れたイディオム、デザインパターンまとめたサイト、書籍、教えてよ
2022/01/09(日) 14:30:52.75ID:YbeZmiIg
react nativeのパーツかわからないんですけど
画面の下から出てくるダイアログってどのモジュールを使えばいいんでしょう?

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' ) {

}
);

どうすりゃ良いの?おそえて。
2022/01/20(木) 19:58:21.41ID:dHw5M9GX
store.getState()
267デフォルトの名無しさん
垢版 |
2022/01/22(土) 01:00:33.62ID:Q6mU4pBx
React Nativeはオワコンらしいですが
Reactは使う価値ありますか?

教えてエロい人
2022/01/22(土) 01:02:15.28ID:VcaTUFKD
>>267
自分で見極められないの?
2022/01/22(土) 01:17:25.20ID:Q6mU4pBx
>>268
すいません。
パソコン初心者です。
アドバイスお願いします。
2022/01/22(土) 01:19:22.91ID:NdDHIpih
初心者はやめておいた方が良いです
2022/01/22(土) 01:25:12.66ID:Q6mU4pBx
これから勉強するならFlutterの方がいいですか?
2022/01/22(土) 10:04:33.20ID:Z1IOsfXg
シカトっすか?
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フォルダーにコピーされないです・・・
回避方法ないでしょうか?
275デフォルトの名無しさん
垢版 |
2022/01/23(日) 11:08:40.96ID:5zqw2dvO
>>274
解決しました!失礼しました・・・。
276デフォルトの名無しさん
垢版 |
2022/01/26(水) 10:48:59.57ID:PJmPV3+3
Reduxのストアにクラスっぽいオブジェクト(プロパティ+関数)入れようとしたら
non-serialize objectがどうのこうのとエラーになった。
そもそも何でシリアライズなんかやろうとするんだ?
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
別にそんなもん担保する必要ないだろ。
2022/01/26(水) 18:01:16.43ID:+qGThwTi
reduxの根本が不変性をベースにしてるんだが
でないとシャロー比較とか成り立たない
たいして有用じゃないがタイムトラベルも不変性前提の機能
そのへんちゃんと理解してから使った方がいいよ
281デフォルトの名無しさん
垢版 |
2022/01/27(木) 00:56:59.89ID:58xO6kDn
そんなどうでも良い概念を使用者全員に押し付けて来んなよ。
単にreactでアプリをリプレイスで作ったら状態がコンポーネント単位で持たれて、
アプリ単位で持ちたいな、と考えたらReduxが一番人気だよって事で採用しただけだ。
不変性?(w) プログラムが変数に余計な変更加えなければ何もしなくても担保されてるだろw
2022/01/27(木) 01:06:46.42ID:oXQnXbb3
ダメだこいつ…
283デフォルトの名無しさん
垢版 |
2022/01/27(木) 01:39:30.37ID:58xO6kDn
何故それが必要と思うのか説明して見ろよw
2022/01/27(木) 05:05:01.32ID:kowYjA+c
Ruby on Rails の作者・DHH の動画では、

React, Vue.js とか、規約だけのフレームワーク・Stimulus も使う
2022/01/27(木) 10:03:38.14ID:QU6mkTFl
>>283
すでに280に書いただろが
もっともシャロー比較のために不変性が必要というのは話が逆で不変性が前提としてあるからシャロー比較が機能するんだが
もっと言えばreduxは関数型のスタイルを「選択」して全体が作られてる
だからステートやアクションは不変に、reducerやselecterは純粋にすべしってこと
それがreduxの設計意図
一番人気と聞いただけで飛びついちゃった上っ面君には関係ない話だけどな
2022/01/27(木) 10:51:15.03ID:zgsWbtRT
>>284
DHHってフロントエンドでは間違いしかしない人だからスルー推奨
287デフォルトの名無しさん
垢版 |
2022/01/27(木) 11:28:21.68ID:58xO6kDn
>>285
だから全てのアプリがシャロー比較とかタイムトラベルしたい訳じゃないだろって話してんだがw?
まあ、余計な機能をテンコ盛りに詰めて利用者に強制したから、別の実装が出たりreactが自前実装して
見捨てられるんだろうけど。Reduxに期待する事はFluxのあの図を忠実に実装する事だけで余計な機能は付けるなよ

>一番人気と聞いただけで飛びついちゃった上っ面君には関係ない話だけどな

飛びついたのは俺じゃなくて俺が使ってるミドル作った人だけど、まあ、あのアプリの規模(デモレベル)
でそんな面倒臭いシステム使ったのなら、理由はそんなところだろうなと。
Reduxはマジあかんな。費用対効果が悪すぎる。
コスト意識の無い潔癖な学者か研究者が作ったシステムって感じがするね。
2022/01/27(木) 12:05:30.94ID:zgsWbtRT
>>287
全てのアプリがしたいかどうかじゃなくてredux使うアプリはその流儀に従うしかないって話なんだがわからず屋だな
それが嫌ならredux選ぶなっつーだけの話だ
ちなみにシャロー比較はreact.memoなどreactエコシステムの共通項だから全てのreactアプリ開発者が身につけておくべきことだけどな
だいたいreduxの元の作者が今はreactコアチームの主要メンバーでredux不要化を進めてる張本人だし
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 で、簡単なデモ。
この兄ちゃんは、きれいな英語を喋るので、翻訳も分かりやすい
2022/01/28(金) 07:19:26.02ID:FbvuqA1u
Ruby はお呼びじゃないです
291デフォルトの名無しさん
垢版 |
2022/01/29(土) 01:06:49.85ID:b1Z4prOk
>だいたいreduxの元の作者が今はreactコアチームの主要メンバーでredux不要化を進めてる張本人だし

害悪をまき散らした張本人だな。
マジであの生鮮性を何故実装して広めようとした事は理解に苦しむ。
J2EEとかhadoopとか(多分将来的にk8sも)生産性が超絶に低い潔癖システムが消えてなくなった事例から全く学ぼうとしないんだな。
292デフォルトの名無しさん
垢版 |
2022/02/06(日) 05:24:52.64ID:ETpepHrW
ReactでPOSTメソッドだけを受けるアプリ作るのはどうすれば良いんでしょう?
"react POST method "でぐぐってもfetchを使えとか、何故か投げる側の処理ばかりが出ます。
webサーバーには何も入れてないので、npm start で動くサーバーと思しき物はreact-scriptsの筈です。
POSTメソッドだけに紐付いたコンポーネント書きたいのですが…
2022/02/06(日) 07:33:46.13ID:d9+JDYY/
>>292
(´Д`)
2022/02/06(日) 13:52:11.36ID:xkt5lO0Z
>>292
これネタじゃなくマジで言ってんの
2022/02/06(日) 15:17:45.09ID:d9+JDYY/
(´Д`)
2022/02/06(日) 15:52:20.16ID:YYEn69uQ
GETとPOSTの違いを質問するだけで、
アレな人を面接から排除できるし、簡単だな
これで95%ぐらい排除できるし
2022/02/06(日) 16:34:57.86ID:FsJSE82A
いやいや、この場合はクライアントとサーバの違いを質問するところからだろ……
2022/02/06(日) 16:41:29.09ID:d9+JDYY/
まずネタかどうか...
2022/02/06(日) 16:52:26.30ID:NfirkViC
□私はロボットではありません
300デフォルトの名無しさん
垢版 |
2022/02/06(日) 21:41:04.19ID:g3gFasX1
あれ?Reactってサーバーサイドで動く処理は一切かけないの??
Next.jsとかあるから、かけるもんかと思ってたけど。
2022/02/06(日) 22:13:46.32ID:akwTUDY3
Next.jsってそれっぽい処理あるのね
React勉強中でAPIサーバ別で作るかって思ってたけどNext.jsで事足りそう
2022/02/06(日) 22:34:10.48ID:hDdLDr4C
Next.jsのサーバサイドはpages以下のページコンポーネントに対応するGETリクエストを受けたときだけそのページコンポーネントをレンダリングする(SSRの場合)
POSTを処理するにはAPIルートを使えるがこれはReactコンポーネント関係ない
2022/02/07(月) 16:33:13.54ID:QUqmCtWk
Ruby on Rails は、React, Bootstrap が多い

他には、Vue.js, Stimulus, jQuery
Bulma, Tailwind

Rails にはHTML ではなく、JSON を返す、API モードもある
2022/02/07(月) 16:54:59.57ID:sj/r7l/l
ウザ
2022/02/08(火) 16:28:11.87ID:vHTqeH80
prettier以外でReact hookでつかえる
フォーマッターで何か良いの無いでしょか?
2022/02/15(火) 22:42:35.11ID:/0MPsAKI
eslint
307デフォルトの名無しさん
垢版 |
2022/03/16(水) 12:08:38.94ID:5z0ayZzJ
webサイト作っててログイン名とか持ち回りたいんですけど、usestateとかpropsとかで持ち回るよりlocalstorageとかsessionstorageとか使えば良いのでは?と思うのですが何か問題あったりする?
2022/03/16(水) 15:24:22.47ID:QBH5mk3r
なぜその程度の情報をそこに保存しようと思ったのかを知りたいね
309デフォルトの名無しさん
垢版 |
2022/03/16(水) 21:21:30.66ID:5z0ayZzJ
もち回るのが面倒だからこれでいいかなって、、
2022/03/16(水) 21:24:39.33ID:aSvQMnmr
どうせ他にも持ち回る情報はあるのだからちゃんと管理した方がいいよ
どっちしろuseLocalStorageみたいなフック作ることになるんだし
311デフォルトの名無しさん
垢版 |
2022/03/17(木) 01:04:21.86ID:nbrJosFU
Ruby on Rails では、セッション情報を何を使って実現しているかは、あまり意識しない。
各デバイスを自分でコーディングする事もない

4KB までなら、ブラウザのcookie だし、
それ以上なら、Rails のキャッシュか、データベースとか

フレームワークを使わない人は、自分で調べてコーディングするから、
何十倍も時間が掛かって、なおかつ低品質な実装しかできない
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のビューファイルのソースコードを見ると
配置されているコンポーネントが何なのかわかりにくい
2022/04/01(金) 11:23:42.76ID:auF3smsz
React DevToolsというのがありましてん
315デフォルトの名無しさん
垢版 |
2022/04/01(金) 18:54:14.92ID:yYW+C1/7
Reactってちょっとした実装するとすぐパフォーマンス悪くなって
不要なれだリングを抑制するのに苦労するじゃん

これ逆にで、全て手動でレダリング指示する方式には出来なかったん?
2022/04/01(金) 19:46:55.68ID:rhFjyhAq
それなんてjQuery
2022/04/03(日) 15:55:17.06ID:MTdqQjr6
>>307
recoil使えばええんやない?それで足りんかったらrecoil-persistも
2022/04/13(水) 00:17:55.41ID:fbGfFCQp
react-bootstrapの"esm"ってどこの馬鹿が付けたんだ?
RowとかColとかを自動インポートするたびにesmが付きやがる・・・(怒
それならreact-bootstrap-esmにでもしてreact-bootstrapとは分けろよ
とんでもねえ馬鹿野郎が作っちまったな
2022/04/15(金) 18:52:04.48ID:6JZFJ70w
スマホアプリと連動するWebアプリを開発するために
html, css, js, ts, react, redux, material-uiなどについて現在勉強中
「組み込みの経験値があるから、Webアプリ開発なんて楽勝でしょwwwww」とか思ってたけど
技術選定を含めて二週間かかってもまだ開発に着手できてない
もう1週間はかかりそう。かなり敷居が高いな
2022/04/15(金) 18:53:13.67ID:6JZFJ70w
バックエンドはfirebaseとapp engineを使うつもりだから簡単なはずなんだけど
2022/04/16(土) 10:36:16.56ID:GJol2hPc
Material-UIもv5になってv4の頃より大分使いやすくなったし選択肢に入れてもいいんじゃない?
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況