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
2019/03/23(土) 16:40:55.66ID:UK/ZLX81
>>12
前提知識が不明なのでとりあえず順番に
1. 「node.js インストール」でググる
2. 「npm react インストール」でググる
3. 「webpack react ビルド」でググる
概要としては node上で動くnpmコマンドで
React, webpack, Babelをインストールして、webpackでビルド
それとJSXはJavaScriptの構文拡張でしかないから
変換(ビルド)で出てくるのはJSだけ
前提知識が不明なのでとりあえず順番に
1. 「node.js インストール」でググる
2. 「npm react インストール」でググる
3. 「webpack react ビルド」でググる
概要としては node上で動くnpmコマンドで
React, webpack, Babelをインストールして、webpackでビルド
それとJSXはJavaScriptの構文拡張でしかないから
変換(ビルド)で出てくるのはJSだけ
2019/03/23(土) 16:47:46.96ID:Tnjwe5F0
2019/03/23(土) 17:42:18.24ID:SoDVK1qs
>>14
npm run build
でdistフォルダに生成されてない?
package.jsonにscriptsって項目で
npm run 〇〇
で使えるコマンド一覧が書いてあるから一度確認してみ
npm run build
でdistフォルダに生成されてない?
package.jsonにscriptsって項目で
npm run 〇〇
で使えるコマンド一覧が書いてあるから一度確認してみ
2019/03/23(土) 17:42:53.33ID:UK/ZLX81
>>14
create-react-appなら npm run build でビルド出来る (裏でwebpackやbabelが動く)
js(JSX)をビルドするだけならhtmlは出ない
create-react-appならhtmlの最適化コピーを出すようになってる
元ファイルは public/index.html にあるはず
create-react-appなら npm run build でビルド出来る (裏でwebpackやbabelが動く)
js(JSX)をビルドするだけならhtmlは出ない
create-react-appならhtmlの最適化コピーを出すようになってる
元ファイルは public/index.html にあるはず
2019/03/23(土) 18:44:19.14ID:Tnjwe5F0
2019/03/23(土) 18:48:41.08ID:4V4ijAbJ
Babel
https://babeljs.io/docs/en/babel-preset-react
@ babel / preset-react
このプリセットには常に、次のプラグインが含まれています。
@ babel / plugin-transform-react-jsx など!
https://babeljs.io/docs/en/babel-preset-react
@ babel / preset-react
このプリセットには常に、次のプラグインが含まれています。
@ babel / plugin-transform-react-jsx など!
2019/03/23(土) 18:57:04.81ID:SoDVK1qs
>>17
npm run eject
node_modulesのreact-scriptsをプロジェクトルートに移してから
react-scriptsの中身を書き換えてビルドプラグインとかを抜けばいいけど
詳しいやり方はQiita漁ったら確かあったと思うから探してみ
npm run eject
node_modulesのreact-scriptsをプロジェクトルートに移してから
react-scriptsの中身を書き換えてビルドプラグインとかを抜けばいいけど
詳しいやり方はQiita漁ったら確かあったと思うから探してみ
2019/03/23(土) 19:08:09.96ID:UK/ZLX81
>>17
ReactはJavaScriptで動的にページを構築するからhtmlファイル自体は殆ど空っぽだよ
ReactはJavaScriptで動的にページを構築するからhtmlファイル自体は殆ど空っぽだよ
2019/03/23(土) 20:00:56.18ID:SoDVK1qs
npm run eject やった後にできた
scripts/build.jsの
const config = configFactory('production');
↓
const config = configFactory('development');
と
config/webpack.config.jsの148行辺り
path: isEnvProduction ? paths.appBuild : undefined,
↓
path: isEnvProduction ? paths.appBuild : paths.appBuild,
に書き換えたら良さそうだね
minify掛かってなくてもやっぱ見づらいけど
scripts/build.jsの
const config = configFactory('production');
↓
const config = configFactory('development');
と
config/webpack.config.jsの148行辺り
path: isEnvProduction ? paths.appBuild : undefined,
↓
path: isEnvProduction ? paths.appBuild : paths.appBuild,
に書き換えたら良さそうだね
minify掛かってなくてもやっぱ見づらいけど
22デフォルトの名無しさん
2019/03/23(土) 23:26:19.57ID:bpH0UPT8 とりあえずなんか見せるためだけなら、最終的にブラウザで表示されてる html だけとってこれば?ページ表示してブラウザの保存機能でここまでならできる。 js は react じゃない部分だけ取り出すのはむずいと思う。自分で書き直してあげるしかない。
2019/04/27(土) 22:25:13.20ID:Ud86wEGC
そういやReactでClassコンポーネント作るとき
extends React.Componentって書くけど
自作クラスを中間クラスとして中継して継承するのってあんまやらないもんなの?
extends React.Componentって書くけど
自作クラスを中間クラスとして中継して継承するのってあんまやらないもんなの?
2019/05/11(土) 11:04:25.28ID:dFSThr/t
継承はせずに単なるコンポジットかHigher Order Componentsでやってる
2019/05/18(土) 13:26:28.87ID:IcnCnpvi
classコンポーネントはほぼ使わないな
前はrecompose使ってたし今はhooksあるし
前はrecompose使ってたし今はhooksあるし
2019/05/18(土) 17:08:52.29ID:4C+see96
ほんとクラスのキッタネエ構文大嫌いだわ
そもそも生まれてこなきゃ良かったのにオブジェクト指向つってもクラスベースじゃないっつーの
es2015でねじ込んだヤツ呪われろ
そもそも生まれてこなきゃ良かったのにオブジェクト指向つってもクラスベースじゃないっつーの
es2015でねじ込んだヤツ呪われろ
27デフォルトの名無しさん
2019/06/11(火) 13:27:33.61ID:vib91KXZ React + Redux を使用したモダンフロントエンド開発
https://www.udemy.com/react-redux-basic/
これを1200円で購入したよって人いる・・・?
Udemyはしょっちゅう1200円セールしてるけど、これも1200円になったりするかな
現状の9600円となるとお財布が厳しくて・・・
https://www.udemy.com/react-redux-basic/
これを1200円で購入したよって人いる・・・?
Udemyはしょっちゅう1200円セールしてるけど、これも1200円になったりするかな
現状の9600円となるとお財布が厳しくて・・・
2019/06/13(木) 10:37:32.28ID:euXigNzW
React Native 公式blog 2019/06/12
https://facebook.github.io/react-native/blog/2019/06/12/react-native-open-source-update
React Native 0.60, TurboModule, Lean Core, アップグレードコマンドの改善などの話
https://facebook.github.io/react-native/blog/2019/06/12/react-native-open-source-update
React Native 0.60, TurboModule, Lean Core, アップグレードコマンドの改善などの話
2019/06/13(木) 10:44:16.38ID:euXigNzW
React Nativeの改善に関するサブプロジェクトあるいは用語
Lean Core: リポジトリの再編成(コンポーネントの分離)
TurboModules: NativeModulesの新構造(JSIを使用した改善)
Fabric: UIレイヤの新構造(JSIを使用した改善)
JSI: JavaScript Interface, JS-Native間のブリッジを高性能化する仕組み
Lean Core: リポジトリの再編成(コンポーネントの分離)
TurboModules: NativeModulesの新構造(JSIを使用した改善)
Fabric: UIレイヤの新構造(JSIを使用した改善)
JSI: JavaScript Interface, JS-Native間のブリッジを高性能化する仕組み
2019/07/01(月) 11:44:34.42ID:z9YX7xX6
みんなReduxの非同期処理どうしてる?
2019/07/01(月) 13:21:05.84ID:PO46Zlgj
オレオレミドルウェア
suspenseが来たらreduxもろとも捨てる
suspenseが来たらreduxもろとも捨てる
2019/07/06(土) 17:25:24.51ID:GNb7wQCP
React+Reduxやってるけど、MとVM的なものが分離されないのがつらくなってきた。
他のfluxフレームワークだとどうなんだろう。
他のfluxフレームワークだとどうなんだろう。
2019/07/06(土) 17:57:41.84ID:TSNTMph3
所詮プレゼンテーションレイヤーのフロントエンドにMを持ち込むタコは何を使っても同じ
2019/07/06(土) 19:48:01.42ID:GNb7wQCP
>プレゼンテーションレイヤーのフロントエンドにMを持ち込む
なにかマウントとりたい意思は伝わってくるけどさすがに意味不明。
なにかマウントとりたい意思は伝わってくるけどさすがに意味不明。
2019/07/06(土) 19:58:59.36ID:SiQr95jR
MVCとかMVVMとかって小さい単位での独立部品の切り出しを考えたら結構邪魔なんだよね
2019/07/06(土) 20:56:58.71ID:apheD/Vh
道具は悪くない
設計者が悪い
設計者が悪い
2019/07/07(日) 00:32:53.73ID:eaenhCbM
Announcing React Native 0.60
https://facebook.github.io/react-native/blog/2019/07/03/version-60
https://facebook.github.io/react-native/blog/2019/07/03/version-60
2019/08/04(日) 01:11:18.51ID:k7LAQow0
久々に動かしたらmetro bundlerなるものができてた
ナンジャコリャ
ナンジャコリャ
2019/08/16(金) 09:00:38.45ID:DTIEgPs0
公式blogから
React 16.9.0 およびロードマップの更新
https://reactjs.org/blog/2019/08/08/react-v16.9.0.html
新しいReact DevTools
https://reactjs.org/blog/2019/08/15/new-react-devtools.html
React 16.9.0 およびロードマップの更新
https://reactjs.org/blog/2019/08/08/react-v16.9.0.html
新しいReact DevTools
https://reactjs.org/blog/2019/08/15/new-react-devtools.html
2019/08/16(金) 11:07:23.70ID:SpwmZ6gR
半年ぶりか
滞ってるな
滞ってるな
2019/08/16(金) 14:14:55.65ID:fLRfCcm2
オワコンなのかな
2019/08/16(金) 16:05:56.38ID:DTIEgPs0
・Hooksのフォローアップの作業量を過小評価していた
・Concurrent Mode と Suspense for Data Fetching の作業に注力
Facebookのサイトで実際に試していてリリースに向けて修正中
この辺で時間掛かっているらしい
・Concurrent Mode と Suspense for Data Fetching の作業に注力
Facebookのサイトで実際に試していてリリースに向けて修正中
この辺で時間掛かっているらしい
2019/08/16(金) 23:37:57.69ID:RmCywHfR
hooks はなあ
モナド欲しい
モナド欲しい
2019/08/26(月) 03:11:43.67ID:xTwJabF+
create-react-app xxx とすると、
xxxというreactアプリ(フォルダ)が作られますが、
このxxxの部分を変更したい場合、そのままフォルダを編集してしまっても問題ありませんか?
他にもpackage.jsonのnameもxxxになっておりますがこちらも変更したりして
xxxというreactアプリ(フォルダ)が作られますが、
このxxxの部分を変更したい場合、そのままフォルダを編集してしまっても問題ありませんか?
他にもpackage.jsonのnameもxxxになっておりますがこちらも変更したりして
2019/09/26(木) 18:30:21.05ID:OrvmZwJd
React Native 0.61
https://facebook.github.io/react-native/blog/2019/09/18/version-0.61
・ライブリロードとホットリロードは新実装のファストリフレッシュに統合された
・0.60で支障があったCocoaPodsでのuse_frameworksの問題が解消
https://facebook.github.io/react-native/blog/2019/09/18/version-0.61
・ライブリロードとホットリロードは新実装のファストリフレッシュに統合された
・0.60で支障があったCocoaPodsでのuse_frameworksの問題が解消
2019/09/28(土) 09:05:26.72ID:yWQY0maC
ReactNativeでaxios動かないんだが。。。
47デフォルトの名無しさん
2019/10/28(月) 18:32:37.59ID:kOeifBSs macOS上でのReact Native(Project Catalystを使用)
https://twitter.com/brunolemos/status/1185636022346043392
https://github.com/react-native-community/discussions-and-proposals/issues/131#issuecomment-544189591
https://twitter.com/5chan_nel (5ch newer account)
https://twitter.com/brunolemos/status/1185636022346043392
https://github.com/react-native-community/discussions-and-proposals/issues/131#issuecomment-544189591
https://twitter.com/5chan_nel (5ch newer account)
48デフォルトの名無しさん
2019/11/10(日) 09:20:57.59ID:ZVDov6M9 vscode+react+material-ui使ってるんだけど下のコードでボタンが赤にならないのなんでだろう・・・
なんかPrimaryが紫になってるんだが・・・
import { createMuiTheme } from '@material-ui/core/styles';
import red from '@material-ui/core/colors/purple';
const mytheme = createMuiTheme({
palette: {
primary: red,
},
});
const useStyles = makeStyles({
button: {
backgroundColor: mytheme.palette.primary.main,
},
});
export default function CenteredGrid() {
const classes = useStyles();
return (
<div className={classes.root}>
<Grid container spacing={0} justify={'center'}>
<Grid item xs={12}>
<Button className={classes.button} variant='outlined'>
botton
</Button>
</Grid>
</Grid>
</div>
);
}
なんかPrimaryが紫になってるんだが・・・
import { createMuiTheme } from '@material-ui/core/styles';
import red from '@material-ui/core/colors/purple';
const mytheme = createMuiTheme({
palette: {
primary: red,
},
});
const useStyles = makeStyles({
button: {
backgroundColor: mytheme.palette.primary.main,
},
});
export default function CenteredGrid() {
const classes = useStyles();
return (
<div className={classes.root}>
<Grid container spacing={0} justify={'center'}>
<Grid item xs={12}>
<Button className={classes.button} variant='outlined'>
botton
</Button>
</Grid>
</Grid>
</div>
);
}
2019/11/10(日) 09:43:45.39ID:ZVDov6M9
ごめん自決して
カラーのimportミスってた
×import red from '@material-ui/core/colors/purple';
◯ import red from '@material-ui/core/colors/red';
スレ汚しすまん
カラーのimportミスってた
×import red from '@material-ui/core/colors/purple';
◯ import red from '@material-ui/core/colors/red';
スレ汚しすまん
2019/11/28(木) 18:27:49.62ID:GNo6CJtR
react-native doctor コマンド
https://facebook.github.io/react-native/blog/2019/11/18/react-native-doctor
プロジェクト設定や開発環境の診断と修正
https://facebook.github.io/react-native/blog/2019/11/18/react-native-doctor
プロジェクト設定や開発環境の診断と修正
51デフォルトの名無しさん
2020/01/20(月) 13:50:40.11ID:NblZ7u1g 初歩的な質問で申し訳ないのですが
リセットCSSを適用させようとすると、スタイルがリセットCSSのみしか適応されません。
具体的には・・・
App.js
import React from "react";
import { render } from "react-dom";
import "./reset.css";
import "./first.scss";
import { BrowserRouter, Switch, Route } from "react-router-dom";
こんな感じのをApp.jsに読み込ませているのですが、
reset.cssをインポートするとreset.cssのHTMLがリセットされたスタイルしか反映されず、first.scssは反映されません。
reset.cssを外しfirst.scssのみにすればちゃんとfirst.scssの内容がHTMLに反映されます。
HTMLのCSSをリセットしてから、オリジナル(first.scss)に変更といった事がしたいのですが、
どうすれば良いでしょうか?
reset.cssはこちらのHTML5 Doctor Reset CSSというのをreset.cssにコピペしてインポートしています。
http://html5doctor.com/html-5-reset-stylesheet/
試しにfirst.scssの中身の最上部にHTML5 Doctor Reset CSSの中身を張り付けてみたのですが同じでした。
リセットCSSを適用させようとすると、スタイルがリセットCSSのみしか適応されません。
具体的には・・・
App.js
import React from "react";
import { render } from "react-dom";
import "./reset.css";
import "./first.scss";
import { BrowserRouter, Switch, Route } from "react-router-dom";
こんな感じのをApp.jsに読み込ませているのですが、
reset.cssをインポートするとreset.cssのHTMLがリセットされたスタイルしか反映されず、first.scssは反映されません。
reset.cssを外しfirst.scssのみにすればちゃんとfirst.scssの内容がHTMLに反映されます。
HTMLのCSSをリセットしてから、オリジナル(first.scss)に変更といった事がしたいのですが、
どうすれば良いでしょうか?
reset.cssはこちらのHTML5 Doctor Reset CSSというのをreset.cssにコピペしてインポートしています。
http://html5doctor.com/html-5-reset-stylesheet/
試しにfirst.scssの中身の最上部にHTML5 Doctor Reset CSSの中身を張り付けてみたのですが同じでした。
2020/01/20(月) 14:09:55.08ID:1C7qXqig
importされるのはcssじゃなくてjs(実質reset.css.js)だからね
問題はwebpackの設定じゃないの?
webpack entryでググってみたら?
問題はwebpackの設定じゃないの?
webpack entryでググってみたら?
2020/01/29(水) 20:07:56.78ID:kAGOnFqI
最近androidシミュでfetchが上手くいかなくなったけど何でだろ?
2020/05/23(土) 18:46:27.62ID:wT2dUHsh
useStateとReduxって共存していいの?
2020/05/24(日) 13:54:49.55ID:rk0sziuW
2020/06/09(火) 16:01:35.59ID:mEfhV+3L
React.ComponentとSuspenseを使ってリストを読み込んで表示するプログラムを書いているのだけど
renderでメンバ関数を呼んで読込するとthisがつく変数(stateとか)が全てリセットされるよどうして?
リセットされる変数をstaticにすると動くようです
renderでメンバ関数を呼んで読込するとthisがつく変数(stateとか)が全てリセットされるよどうして?
リセットされる変数をstaticにすると動くようです
2020/07/25(土) 07:59:44.00ID:e6nmtc2O
人工知能フレームワークのGpt-3がReact上で動くんだよなあ
2020/07/25(土) 14:10:16.00ID:ZlqyHRW3
59デフォルトの名無しさん
2020/08/05(水) 20:39:39.66ID:HaLefuVq reactでフォームの連動させたいんだけど
良いチュートリアルやサンプルをおしえてください
調べ方でも大丈夫です
良いチュートリアルやサンプルをおしえてください
調べ方でも大丈夫です
2020/10/06(火) 09:47:28.33ID:FaC1oBor
2020/10/06(火) 15:47:26.50ID:3JbOTVG0
2020/10/07(水) 08:13:26.21ID:9X+ETi/j
他のフォーム要素を同時にどうかしたいって仮定するとonClickイベントやonChangeイベントのコールバックにメソッド噛ませればいいんじゃない?
2020/10/11(日) 20:19:56.38ID:/PPF0LFF
Html,Javascriptのソースコードをreact nativeに書き直してるけどDom要素のID管理していたのを書き直すのが辛すぎる
何かよいライブラリないかなぁ
何かよいライブラリないかなぁ
64デフォルトの名無しさん
2021/01/04(月) 01:07:02.79ID:EMrQXkgT iOSやAndroidアプリを作りたくてprogateのhtmlとJavaScriptと reactまでやったんですが、次に何をすれば良いか分かりません。僕は次に何を学べばいいですか?
65(u_・y)
2021/01/04(月) 11:37:19.32ID:oZidFLop (u_・y)順序からしておかしくね
(u_・y)Androidアプリ作るならまずAndroid上でハローワールドだろ
(u_・y)Googleになんかアカウント作って登録あれこれやるんじゃねーの
(u_・y)Win以外のアプリを作るので難関になるのはそういった手順と環境構築絡みなので、
(u_・y)周りに先生がいない状況で独学初心者がいきなりAndroidアプリってのはハローワールドまでに時間かかるぞ
(u_・y)Androidアプリ作るならまずAndroid上でハローワールドだろ
(u_・y)Googleになんかアカウント作って登録あれこれやるんじゃねーの
(u_・y)Win以外のアプリを作るので難関になるのはそういった手順と環境構築絡みなので、
(u_・y)周りに先生がいない状況で独学初心者がいきなりAndroidアプリってのはハローワールドまでに時間かかるぞ
2021/01/12(火) 01:34:10.49ID:dF2LSabj
公式のドキュメントに全部書いてあるから全部読め
2021/01/21(木) 19:04:19.07ID:RZX+x1N+
Java から来て、最近 React はじめたんだけど、MVC 思想的なのは最近フロントエンドではなくなっていってる感じなん?
せめて View 部分は分けないと気持ち悪いんだけど、チュートリアルみても割とごちゃまぜなのよね…
せめて View 部分は分けないと気持ち悪いんだけど、チュートリアルみても割とごちゃまぜなのよね…
68デフォルトの名無しさん
2021/02/14(日) 03:47:14.57ID:wyKYn9A/ React の hookを初めてみてるんだけど、
これClassベースの機能で提供できないのかな?
functionなのに永続化を無理やりやってるようでコード読みづらい。
その永続化をuse接頭語のみで判断しなければならないという...
functionじゃなきゃhookの機能が提供できない??というモヤモヤ感が払拭できないです。
これClassベースの機能で提供できないのかな?
functionなのに永続化を無理やりやってるようでコード読みづらい。
その永続化をuse接頭語のみで判断しなければならないという...
functionじゃなきゃhookの機能が提供できない??というモヤモヤ感が払拭できないです。
2021/02/14(日) 04:24:42.10ID:qcnkr3Yb
元々はクラスベースで提供されてた機能を関数コンポーネントでも使えるようにしたのがhookやで
2021/02/14(日) 04:26:06.17ID:o9olz+i9
71デフォルトの名無しさん
2021/02/14(日) 04:47:15.25ID:wyKYn9A/2021/02/14(日) 04:59:08.67ID:o9olz+i9
>>71
もちろんできるしそれを手動でやってきたのがクラス
でもsetState呼ばなかったり状態にオブジェクトが必須だったりで色んなミスが起きやすかった
それをフレームワーク側で全部やって
ユーザーが書きやすくするのがHooks
人間がやるよりフレームワークがやる方が信頼性が高いし賢いからそこは任せた方が良いよねってことで生まれたと勝手に思っている
もちろんできるしそれを手動でやってきたのがクラス
でもsetState呼ばなかったり状態にオブジェクトが必須だったりで色んなミスが起きやすかった
それをフレームワーク側で全部やって
ユーザーが書きやすくするのがHooks
人間がやるよりフレームワークがやる方が信頼性が高いし賢いからそこは任せた方が良いよねってことで生まれたと勝手に思っている
73デフォルトの名無しさん
2021/02/14(日) 05:41:48.27ID:wyKYn9A/ >>72
だから、それ(hook)をclassべースで提供できないの?って言ってんの。
だから、それ(hook)をclassべースで提供できないの?って言ってんの。
2021/02/14(日) 05:48:13.99ID:eZAyHvHf
クラスはhookなしで同じことができるから提供する必要がない
2021/02/14(日) 07:45:04.97ID:o9olz+i9
>>73
いやだからsetStateという汎用的な物しか提供できないっことね
stateを自分で好き勝手いじれるのに
それをライブラリが管理するって無理でしょ
hooksは内部で対応するコンポーネントとその状態を管理してるから
ライブラリとして提供できる
いやだからsetStateという汎用的な物しか提供できないっことね
stateを自分で好き勝手いじれるのに
それをライブラリが管理するって無理でしょ
hooksは内部で対応するコンポーネントとその状態を管理してるから
ライブラリとして提供できる
76デフォルトの名無しさん
2021/02/14(日) 13:32:40.22ID:wyKYn9A/2021/02/14(日) 14:00:51.86ID:+4ZWExbH
お前もわからずやだな
useStateだろうがuseEffectだろうがuseCallbackだろうがuseRefだろうがclassコンポーネントはhookなしで同じことが実現できてるだろ
useStateだろうがuseEffectだろうがuseCallbackだろうがuseRefだろうがclassコンポーネントはhookなしで同じことが実現できてるだろ
2021/02/14(日) 14:19:02.14ID:wyKYn9A/
hookを知らないやつだったか。アホらし。
2021/02/14(日) 14:34:40.65ID:kA8DCabn
時系列的には
クラスコンポーネント: 状態を扱える
↓
"ステートレス"関数コンポーネント: 状態を扱えない
↓
関数コンポーネント+hooks: 状態を扱える
と発展してきた
つまりhooksはクラスコンポーネントができていたことを関数コンポーネントでもできるようにするために後から追加されたもの
ただし
クラスコンポーネント: 状態をコンポーネントが管理する
関数コンポーネント+hooks: 状態をフレームワークが管理する
という違いがある
これが今後のconcurrent modeやserver componentsで大きな違いになってくる
フレームワークができることを増やすにはコンポーネント側の自由度は低い方がよくてそれがpureな関数コンポーネント
クラスコンポーネント: 状態を扱える
↓
"ステートレス"関数コンポーネント: 状態を扱えない
↓
関数コンポーネント+hooks: 状態を扱える
と発展してきた
つまりhooksはクラスコンポーネントができていたことを関数コンポーネントでもできるようにするために後から追加されたもの
ただし
クラスコンポーネント: 状態をコンポーネントが管理する
関数コンポーネント+hooks: 状態をフレームワークが管理する
という違いがある
これが今後のconcurrent modeやserver componentsで大きな違いになってくる
フレームワークができることを増やすにはコンポーネント側の自由度は低い方がよくてそれがpureな関数コンポーネント
2021/02/14(日) 14:46:29.94ID:wyKYn9A/
2021/02/14(日) 15:15:15.08ID:kA8DCabn
クラスコンポーネントのインスタンスはthis.〜で自由に状態を扱えてしまうからフレームワークには都合が悪い
そこをthis禁止のように縛っていくとただの関数でいいやってなる
そこをthis禁止のように縛っていくとただの関数でいいやってなる
2021/02/14(日) 16:39:29.19ID:DVWK/pJu
useCallbackみたいな単なるラッパー関数がclassにも欲しいってこと?
なんかそう言うパッケージ見たことあるぞ
なんかそう言うパッケージ見たことあるぞ
2021/02/14(日) 16:59:03.97ID:FekQTk3J
classコンポーネントにuseCallbackはいらんやろ
前はbindしたり面倒だったけどstage3のclass fields使えばこれだけ
class Foo extends React.Component {
handleClick = (ev) => {...}
前はbindしたり面倒だったけどstage3のclass fields使えばこれだけ
class Foo extends React.Component {
handleClick = (ev) => {...}
2021/02/14(日) 21:01:15.04ID:K2VDjDyL
Ruby on Rails では、控えめなJS フレームワークのStimulu もある
規約で、HTML のdata-controller 属性で、JSファイル名・コントローラーが決まるので、
そこにイベント処理を書くだけ
DOM・コントローラーは、多対多
1つのDOMは、複数のコントローラーで処理できる。
HTML内で、同じコントローラーを複数定義できる
Stimuluは、this を使う。
同じコントローラーを複数定義したら、別のインスタンスを作る
<li data-controller="a">1</li>
<li data-controller="a">2</li>
規約で、HTML のdata-controller 属性で、JSファイル名・コントローラーが決まるので、
そこにイベント処理を書くだけ
DOM・コントローラーは、多対多
1つのDOMは、複数のコントローラーで処理できる。
HTML内で、同じコントローラーを複数定義できる
Stimuluは、this を使う。
同じコントローラーを複数定義したら、別のインスタンスを作る
<li data-controller="a">1</li>
<li data-controller="a">2</li>
2021/02/14(日) 21:03:03.46ID:NOmukaW1
ス・レ・チ
2021/02/15(月) 02:51:04.90ID:E7fw/gtI
マジで障害者かな?
この板に巣食ってる人がいるのは認識してたけど
この板に巣食ってる人がいるのは認識してたけど
87デフォルトの名無しさん
2021/06/18(金) 09:52:07.92ID:IQL7BQ/N React Hooks + Reduxの利点を述べた記事をいくつか読んだのですが、
MVCでだめな理由がよくわかりませんでした。
複数のModelがReduxのStoreに一本化される: Modelをシングルトンにして、
Storeの内部で区分するところをModelのメンバとして区分する。
ViewからはActionを発行してReducerを通さないとStoreを更新できない:
ViewはControllerに登録されたメソッドを通してしかModelを更新できない。
Storeの更新はViewに自動的に反映される。
Model(とそのメンバ、孫メンバ)がObservableであれば、Modelの更新を
自動的にViewに反映させることができる。
ではだめなんでしょうか。
MVCでだめな理由がよくわかりませんでした。
複数のModelがReduxのStoreに一本化される: Modelをシングルトンにして、
Storeの内部で区分するところをModelのメンバとして区分する。
ViewからはActionを発行してReducerを通さないとStoreを更新できない:
ViewはControllerに登録されたメソッドを通してしかModelを更新できない。
Storeの更新はViewに自動的に反映される。
Model(とそのメンバ、孫メンバ)がObservableであれば、Modelの更新を
自動的にViewに反映させることができる。
ではだめなんでしょうか。
88デフォルトの名無しさん
2021/08/10(火) 10:10:26.07ID:0SSgF6Zh Reactで関数コンポーネントで本気実装始めたんだが、
関数コンポーネント面倒くさ過ぎじゃね?
関数コンポネント入門位の実装なら問題なかったんだが、
ちょっと込み入ったの実装しようと思ったら
クラスじゃないんで、コンポーネントの自前メソッドを(子から親、親から子)公開するのとか
そのTS型定義をどうするのとかうまく解決できんのか?これwww
関数コンポーネント面倒くさ過ぎじゃね?
関数コンポネント入門位の実装なら問題なかったんだが、
ちょっと込み入ったの実装しようと思ったら
クラスじゃないんで、コンポーネントの自前メソッドを(子から親、親から子)公開するのとか
そのTS型定義をどうするのとかうまく解決できんのか?これwww
2021/08/10(火) 10:18:58.12ID:Yti8n+JL
込み入った実装ってだいたい設計から間違ってるよね…
90デフォルトの名無しさん
2021/08/10(火) 10:22:58.46ID:0SSgF6Zh2021/08/10(火) 11:17:59.39ID:x9cqqxVb
奇遇だな、Webとネイティブ両用のスケジュール管理系やってるよ
推測だけどコンポーネントとデータ構造(いわゆるモデル)が分離できてないんだろうと思うわ
同じものをネイティブでも作ることを仮定して共有できるところ(モデル)とできないところ(レンダリング)にわけて考えてみるといんじゃね
推測だけどコンポーネントとデータ構造(いわゆるモデル)が分離できてないんだろうと思うわ
同じものをネイティブでも作ることを仮定して共有できるところ(モデル)とできないところ(レンダリング)にわけて考えてみるといんじゃね
92デフォルトの名無しさん
2021/08/10(火) 11:27:05.53ID:0SSgF6Zh >>91
!!
まだReact不慣れで困ってる
半年前にReact初めてそちはクラスベース(TS)だったので、
実装できない事は無かったのでこういった苦労はなかった
>>コンポーネントとデータ構造(いわゆるモデル)が分離できてないんだろうと思うわ
どうだろう?
あんまり業務的なことを書くわけにはいかんけど、
親パネル側から、配置されたコンポーネントの機能を呼び出したいんだが、
コンポーネントが今回クラスから関数に変わったんで、
コンポーネント側にコンポーネント固有の機能(クラスん時はメソッド)が実装しずらくなって困ってる
関数コンポーネントだとここにメソッドとか置かないもんなの?
!!
まだReact不慣れで困ってる
半年前にReact初めてそちはクラスベース(TS)だったので、
実装できない事は無かったのでこういった苦労はなかった
>>コンポーネントとデータ構造(いわゆるモデル)が分離できてないんだろうと思うわ
どうだろう?
あんまり業務的なことを書くわけにはいかんけど、
親パネル側から、配置されたコンポーネントの機能を呼び出したいんだが、
コンポーネントが今回クラスから関数に変わったんで、
コンポーネント側にコンポーネント固有の機能(クラスん時はメソッド)が実装しずらくなって困ってる
関数コンポーネントだとここにメソッドとか置かないもんなの?
93デフォルトの名無しさん
2021/08/10(火) 12:03:49.33ID:0SSgF6Zh 関数なんだから、オブジェクト指向的な実装はムリなんだろうな
とりあえず、
・クラス → モジュール
・プロパティ → モジュールの関数の引数
・メソッド → モジュールの関数
に置き換えて実装してみるわ
とりあえず、
・クラス → モジュール
・プロパティ → モジュールの関数の引数
・メソッド → モジュールの関数
に置き換えて実装してみるわ
2021/08/10(火) 12:28:03.76ID:dmkhwQTT
関数であれクラスであれ(つかもっと前から)Reactのコンポーネントは渡されたデータ(Props)をただベタッとレンダリングするだけってのがコンセプト
その超基本的なところをわかってなさそう
他の言語やフレームーワークの考え方のままReact始めたのか知らんけどそれをReactに置き換えるよりReact流の考え方を身につけたほうがいいと思うわ
その超基本的なところをわかってなさそう
他の言語やフレームーワークの考え方のままReact始めたのか知らんけどそれをReactに置き換えるよりReact流の考え方を身につけたほうがいいと思うわ
95デフォルトの名無しさん
2021/08/10(火) 12:36:48.42ID:0SSgF6Zh いや、アトミックデザイン的に機能分割して
その単位をオブジェクト指向的にデザインしてたわー−(前回プロジェクト)
でもRender()しかやらん関数と、
その外にはみ出た処理で細切れ関数だらけになって、
コード読みにくいは、実装も美しくならんわー− ( ノД`)ドスル
その単位をオブジェクト指向的にデザインしてたわー−(前回プロジェクト)
でもRender()しかやらん関数と、
その外にはみ出た処理で細切れ関数だらけになって、
コード読みにくいは、実装も美しくならんわー− ( ノД`)ドスル
96デフォルトの名無しさん
2021/08/10(火) 14:00:37.21ID:8kvO2lBn Redux素晴らしいって言ってた人たちは今息してんのかな
97デフォルトの名無しさん
2021/08/10(火) 14:08:07.90ID:UtkECLI3 >>95
この流れでアトミックデザインを出してくるのものすっごく薄っぺらい
この流れでアトミックデザインを出してくるのものすっごく薄っぺらい
2021/08/10(火) 14:15:30.49ID:i+IrTlV6
99デフォルトの名無しさん
2021/08/10(火) 14:57:48.57ID:UtkECLI3100デフォルトの名無しさん
2021/08/10(火) 15:49:45.99ID:LAvum0nL >>99
コンポーネントの分割単位が伝わらんよ
コンポーネントの分割単位が伝わらんよ
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 典型的な「分かってないことが分かってない」ヤツ
レスを投稿する
ニュース
- 【速報】 アメリカ議会 「中国が台湾武力侵攻する準備を急速進展中」 [お断り★]
- アメリカ議会 「中国が台湾武力侵攻する準備を急速進展中」 ★2 [お断り★]
- 【高市自民】中国軍SNS 高市首相に怖すぎる地獄絵で警告、火の海の靖国神社「自ら墓穴を掘り、戻れない道へ進む」 [夜のけいちゃん★]
- 「二枚舌は許されない」中国外務省 高市総理の発言を批判… [BFU★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★8 [樽悶★]
- 中国国際航空が日本便を減便へ、春節休みも SNSでは投稿相次ぐ [七波羅探題★]
- 【実況】博衣こよりのえちえちお子様ランチ🛸💜🥀🧪🍃★2
- 【実況】博衣こよりのえちえちお子様ランチ🛸💜🥀🧪🍃
- 【悲報】高市有事、中国から追加の報復措置が来る模様 [834922174]
- 【悲報】イチゴ高騰で、ショートケーキからイチゴが消える🍰 [966095474]
- 【男磨き】ハウスルール汁遊び禁止🈲🏡【ジョージメンズコーチ】
- 【高市悲報】上念司、6月に輸出再開した途端禁輸になり嘆くナマコ業者を煽る「アンタ今まで何してたんだ?😤」 [359965264]
