Vue vs React vs Angular vs Svelte Part.9

レス数が900を超えています。1000を超えると表示できなくなるよ。
2022/01/16(日) 16:06:14.27ID:Zy2wxIp9
Vue
https://jp.vuejs.org/
React
https://reactjs.org/
Angular
https://angular.io/
Svelte
https://svelte.dev/

※前スレ
Vue vs React vs Svelte Part.7
https://mevius.5ch.net/test/read.cgi/tech/1610901677/
Vue vs React vs Angular vs Svelte Part.8
https://mevius.5ch.net/test/read.cgi/tech/1621744952/

★ここではjQuery, Ruby, C#, Blazorの話題は禁止です
★jQuery, Ruby, C#, Blazorキチガイが書き込んでも無視してください
Next, Nuxt, Sapper, Gatsby, VuePress, RedWoodなどはおk。
2022/02/22(火) 18:34:37.02ID:c4AkAPMk
>>820
フロントに限らずモダンな開発環境はだいたい設定ファイル多いように思うな。ORMにUIのxml、プロジェクト設定ファイルにlintにエディタ用、充実した色んなライブラリやフレームワークの力を借りてる以上、仕方ないんじゃないかな。
2022/02/22(火) 18:42:31.64ID:u+L0qJYd
formatとかもgolangみたいに、「お前らこれでやれ」ってしてほしい
2022/02/23(水) 02:07:59.15ID:w5PGdJbB
>>820
そういう発想のヤツにはこの業界向いてないからバックエンドとかアプリとか違う分野に言った方がいいんじゃない?
2022/02/23(水) 02:17:44.21ID:6LSunBVj
付加価値を産まない重労働から解放されたい
2022/02/23(水) 10:03:28.76ID:f3AuBskH
付加価値造って喜ばれるし、知能労働で工夫しがいはあるし、毎日わりと楽しいです
829デフォルトの名無しさん
垢版 |
2022/02/23(水) 11:13:47.75ID:1qABUjpC
>>823
「不要」じゃなくて「辛いのでやめてください」の間違いでは?
2022/02/24(木) 13:04:05.35ID:ZBqMaJtC
>>820
わかる
重複した設定多いよね
TypeScript使うと更に重複する
2022/02/24(木) 13:31:08.40ID:5we6KcaS
TSの案件に参加してお勉強を始めた初日にtsconfigとbabelとwebpackとjestに似たようなPath Aliasをずらずらと書かされた時点で既に俺はTSに見切りをつけて仕事を辞めたくなっていた
2022/02/24(木) 15:02:13.15ID:2P9y2eU6
いきなり全部やらずに一つ一つ進めればいいのに
2022/02/24(木) 16:00:58.67ID:ZBqMaJtC
>>831
パスはほんと面倒だよね
微妙に書き方違ったりするし
あとlint系
もうちょっとなんとかならんのかな
2022/02/24(木) 16:10:24.66ID:HaSORHoO
設定ファイルのセンスのなさは気になるね
2022/02/24(木) 19:52:56.62ID:Wxpvwt1A
TSなんてメンドクサイだけやんw
javascriptのままでいいよ
わざわざAPIの戻り値とかパラメータをクラスにしてたりするのか?w
過去にC#とかでそういう設計の見て頭痛くなってきたよw
2022/02/24(木) 19:57:27.00ID:FOjKB04f
typescript使ったことなさそう
2022/02/24(木) 20:25:37.57ID:2P9y2eU6
class以外に型(データ構造)の表現方法があるからclassの出番は少ないぜ
2022/02/24(木) 20:32:06.77ID:5we6KcaS
規模が小さいならtypeでもなんでもいいけど
お仕事で扱うようなのだとclassにした方がいいと思うけどね(当然だけどimmutableね)
どんな時でも通じる正解はなくて損益分岐点次第
2022/02/24(木) 20:37:50.55ID:2P9y2eU6
immutableオブジェクトにclass使う意味無くね?
2022/02/24(木) 20:43:46.00ID:5we6KcaS
コンストラクタ
2022/02/24(木) 20:45:20.93ID:C+C5Sasc
>>835
いまだにこういう人がいるってのがフロントエンドっぽい
2022/02/24(木) 20:47:10.11ID:Wxpvwt1A
>>841
まさか全部クラス化してるの?w
ありえねーw
そこまでして何か得でもあるの?w
2022/02/24(木) 20:50:44.50ID:2P9y2eU6
>>840
関数でいいじゃん
2022/02/24(木) 21:31:23.97ID:bE1/OBuy
JSは人によってスタイルがめちゃくちゃ変わるのが面白い
俺は関数型スタイルが好きだがクラススタイルを否定はしない
2022/02/24(木) 21:52:31.20ID:3e9zZpCR
tsでgeter、seter使って
世代管理機能付きの値クラスとかね
2022/02/24(木) 22:28:39.88ID:T+E8gUsR
最近はTailwindCSSかstyled-components+styled-systemでcssを記述するのが好みなんだけど、皆はどうしてる?
facebookもstylexを発表したし、MicrosoftもGriffelを公開したしまたcss、css-in-js周りはちょっと流れが変わりそうな気がする
2022/02/24(木) 22:51:46.72ID:2P9y2eU6
何も考えずに使えて容量も小さくそれなりな見た目になるからTailwindCSSばかり使ってる……
2022/02/24(木) 23:29:43.63ID:7yKw4YOo
>>846
react(next.js)だとcss modules、素でゴリゴリカスタマイズする用
vue(2ベース、nuxt.js)だとvuetify、さらっと作ってしまいたい用
2022/02/25(金) 10:23:48.08ID:OnOgWVLR
>>842
TSと何かを勘違いしてない?
2022/02/25(金) 11:06:29.42ID:gEwvZxtg
TypoSxrypt
2022/02/25(金) 12:31:09.23ID:lLyzwXuY
Nuxt3っていつリリースされんの?
2022/02/25(金) 14:02:07.98ID:m/gyVPN+
reactのhookはすぐに受け入れられたのにVueのcomposition apiはなかなか受け入れられない謎
2022/02/25(金) 14:20:53.24ID:gEwvZxtg
後発だからすでにhookのツラミを知ってるというのもあるだろうね
2022/02/25(金) 17:17:52.05ID:XfOzyFvC
Hooksのツラミって?
2022/02/25(金) 18:00:45.39ID:OzLV5l9t
おじさんがGoスレで暴れてるのを見てしまった……
2022/02/26(土) 18:00:19.74ID:QXAwCwpt
>>852
新規案件が無いってことかと
2022/02/26(土) 18:27:13.35ID:xkMoRRzB
hook以降にReactに入門したけどhook無しのReact世界なんてイメージできないくらい馴染んでると思う。いや、クラスコンポーネントのソースも見たことあるし、読めはするけども
2022/02/27(日) 14:19:30.81ID:1NQDT1lQ
フック憎んでるのおじさんだけでしょ
2022/02/27(日) 14:40:59.19ID:s5yNJ4QJ
ReactをUIを記述するための一種のDSLと考えるならhookはあれでいいと思う
ただ一般的なプログラミングの習慣から考えるとhookは異質すぎる
関数トップレベルでしか使えない、依存関係配列地獄なんかは何故これでリリースしちゃったのか理解に苦しむレベル
2022/02/27(日) 16:10:02.02ID:OAiw6RqC
クラスコンポーネントはコンストラクタの問題とか
stateを生で触れるとかいろいろ問題があった
それ自体言語機能の問題的な部分も大きいのだがね

それはさておきHooksはコード量の削減と副作用の明示的な排除という目的が達成されるから明らかに良い

問題はJSの言語機能の限界ゆえあの様な形になったのをお忘れなく
2022/02/27(日) 16:26:12.59ID:s5yNJ4QJ
いや副作用排除は全然できてない
ここに副作用があります、ってマーカーにはなってるけど
2022/02/27(日) 16:33:35.07ID:tasksO6d
reactは副作用の分離をjsで楽にに実現出来る環境を整えただけでどう分離するかは完全に開発者の領分
自分の知識の足りなさを他者のせいにするのはみっともないからやめた方が良いよ
2022/02/27(日) 17:18:08.29ID:EFBHRlsv
>>861
それが関数型言語ですがw
副作用が起きる部分を外出しして
値をラップした型としてデザインするというのが関数型言語のアイデア
ラップした型から値を取り出したり設定する時に副作用が起きるがそこは目を瞑る
これがHooksによってできているのはお分かりだろう
2022/02/27(日) 17:59:02.56ID:c9v4owXb
HaskellのMonadとかもそういう事なの?
2022/02/27(日) 18:45:51.51ID:s5yNJ4QJ
>>862
楽にできてないんだなぁ
>>859で指摘したようにかなり異質だからねhookって
普通にライブラリ作るときにこんな制約持ち込んだらレビューでボコボコにされる

>>863
副作用が起きる場所をラップ(抽象化というが)して外に出すのは関数型でなくプログラミング一般的なプラクティスな
オブジェクト指向でもDIとかあるだろ?
hookがポンコツなのはせっかく抽象化したuseうんたらってのを関数内で直呼びしちゃうこと
このせいで副作用と関数の結合度が高まって扱いにくくなってる
関数のパラメータとして副作用を渡すなりOOPだったらDIするなりもう少しやりようがあった筈なんだがねぇ
2022/02/27(日) 18:54:40.69ID:3V0YV2cN
おじさんの考えるフックの理想的な実装ってどんなの?
jsで良いから例を出してみて
2022/02/27(日) 18:57:07.53ID:EFBHRlsv
>>864
基本はそうだよ
あとはラップした値が違う型を連鎖呼び出しできるようにするbindという操作があればモナド
2022/02/27(日) 18:58:57.93ID:c9v4owXb
>>867
は〜なるほど、勉強になりました!
2022/02/27(日) 19:01:51.31ID:s5yNJ4QJ
>>866
hookじゃどうやっても理想にならん
本当に必要なものは副作用をコンポーネントに注入するための自然な経路
それは一般的なプログラミング習慣では関数のパラメータだったりOPPでいうDIだったりする
関数の中で副作用であるhookを直で呼んでる時点でダメダメだ
2022/02/27(日) 19:02:58.48ID:JNA4H9cB
hooksをawaitできる仕様ができたらいいんだけどな
2022/02/27(日) 19:03:38.95ID:WHdgNr4m
いやフックじゃ無くて良いからこうすれば良いって言うコードだしてみて
2022/02/27(日) 19:20:22.54ID:s5yNJ4QJ
>>871
既に答え出してるが?
関数の引数やOOPでいうDIって
2022/02/27(日) 19:27:07.02ID:TBrVUWzX
>>869
>>872
同じ事繰り返し言ってるだけでなんも解決できてなくてワロタ
2022/02/27(日) 19:28:40.10ID:s5yNJ4QJ
>>873
そりゃ最初から一貫して答えを言ってるんだからずっと同じことになるだろ
2022/02/27(日) 19:42:59.04ID:EFBHRlsv
>>868
JavaScriptで唯一信用できる型は何か?というとそれは関数だけ
つまり値を関数でラップすれば副作用は外出しできる
単純明快なこの発想をReactのランタイムに実装したものがHooksとなる
Reactチームの頭の良さには脱帽する
2022/02/27(日) 19:45:36.89ID:TBrVUWzX
次スレではワッチョイ入れて荒らしはNGしましょうね〜
2022/02/27(日) 19:56:22.90ID:c1tXQcrg
言葉はいらないからコード書いてみろってw
2022/02/27(日) 19:59:14.13ID:2GGoVw4G
>JavaScriptで唯一信用できる型は何か?というとそれは関数だけ

その場合の信用できるできないの判断基準ってなんなんだろう
2022/02/27(日) 20:13:08.94ID:ELboLLxR
>>874
コードはよ
2022/02/27(日) 21:14:33.08ID:c9v4owXb
>>875
細かいことはわからんが柔軟なJSの関数なら型の制限も高階関数の埋め込みもメモ化も思いのままだもんね。
2022/02/27(日) 22:21:21.20ID:BXZ4hEXt
>>875
もう少しわかりやすくたのむ
2022/02/27(日) 22:45:41.12ID:OAiw6RqC
>>878
コンストラクタを持っていること
JSではこれ以外で型を識別することはできない
2022/02/27(日) 23:00:03.32ID:2GGoVw4G
信用できる型というとまずtypeofが思いつくが
2022/02/28(月) 00:16:09.83ID:baVmurqk
instanceofの話か。でもそれは『型』の意味する範囲が狭すぎないか
2022/02/28(月) 14:40:19.31ID:SiFuECBY
DIライブラリ使えば済む話を延々文句言い続けるおじさんって一体
2022/02/28(月) 14:52:40.67ID:8jlA4tTP
あ、今急になんとなくわかったかも
俺がreactに求めてるのはvdomとvの接続だけだったのかもしれん
状態をどう管理するかだとか、vdomをどうやって構築するかなんてのは、正直おせっかいでしかない
別にvdomをmvvm(この場合はmvvdommになるのか?呼び方がわからんが)で管理したっていいはずなんだよな
なんなら古のformsスタイルだって行けたはずだ
vdomをどうやってvと接続するか、vdomをどう構築・変更していくか、は本来なら直交してる概念の筈なのに、全部セットでreactというパッケージで提供してしまったところがダメなんだ
この抱き合わせはライブラリ的でなく、お節介なフレームワーク的なやり方と言わざるを得ない
2022/02/28(月) 14:54:05.60ID:8jlA4tTP
いやmvdomvmか。略し方はどうでもいいが
2022/02/28(月) 15:21:21.07ID:Msb6WRSo
>>886
その発想は悪くないしアイデアがあるなら実装すれば?
評論家みたいに言うだけじゃ何も評価されない
Reactは仮想Domのライブラリの一つでしかない
数年前はオレオレ仮想Domライブラリは結構あった
全部死んだけど
もし君のアイデアが優れたものなら他の人が流用したり
盗んだりするだろう
2022/02/28(月) 15:33:49.09ID:baVmurqk
>>886
そういう用途なら違うの使えばいいだけじゃん
2022/02/28(月) 15:39:42.00ID:8jlA4tTP
自分で作れとか違うの使えってのはアマチュアプログラマならそれでいいんだけど
仕事でやるとなるとどうしてもシェアが支配的なフレームワークを使わざるを得ない大人の事情も察してくれたら助かる
2022/02/28(月) 15:43:20.33ID:U3U0kmfi
あんたアマチュアじゃん
2022/02/28(月) 15:45:22.89ID:8jlA4tTP
>>891
また盤外のレスバを始める気ですか?
そういうのはよそでどうぞ
2022/02/28(月) 16:01:33.23ID:WsZ2wPze
日本じゃvueのほうが支配的じゃね?
2022/02/28(月) 16:06:30.95ID:Msb6WRSo
ちなみにReactは仮想Dom部分はちゃんとライブラリになってるから
単独で使うこと可能だよ
イベントとかもDomと同じものが実装されてるからReactの仮想Domの上にオレオレフレームワークを作ることは不可能ではないと思う
2022/02/28(月) 16:32:02.24ID:baVmurqk
フレームワークが決まってるならそれに合わせた設計をするだけじゃん
2022/02/28(月) 16:36:26.00ID:P00j5x5J
次スレはワッチョイ必須だな
2022/02/28(月) 17:57:07.90ID:SiFuECBY
>>894
数年前ちょっと流行ったな
状態管理をreactに依存しないパターン
reactはjsxのレンダリングだけを受け持つ
結局消えてなくなったけど
2022/03/01(火) 13:08:43.56ID:Vgav0J5W
>>886
わからない状態で書き込んでる癖にイキるな
次からは投稿文をママに見てもらってからにしな
2022/03/01(火) 14:49:26.12ID:F9Vxi+y6
煽りだけしたいのか
2022/03/01(火) 14:55:59.81ID:abCbtqz5
成りすましを疑うレベル
2022/03/02(水) 20:25:39.81ID:0t5gt6uu
Reactのテストにはみんな何使ってる?
やっぱJest?
2022/03/02(水) 22:11:04.65ID:7B1Vixyo
>>901
俺はjest
だけど使ってるっていえるほどテストしてないやw
2022/03/02(水) 22:53:39.89ID:MO+ZrbWq
テストなんかめんどくせえし手動でいっかいきりにきまってんだろ
2022/03/03(木) 06:19:08.22ID:XelSrFhE
>>902
なるほど、ありがとう。Jestで使ってるjsdomはスクレイピングで使ったことあったけど、ブラウザ動作のエミュレーションもこんなに出来るんだって感心したわ。

>>903
いやいや、アップデート毎に手動で検証するの面倒くさいやん。手動検証するよりテスト書いてる方が楽しいし。
2022/03/03(木) 09:07:59.53ID:xrXvw6Zl
>>901
storybookのplay関数を使って目視で確認しながらやるのもいいよ
jestでそのstoryを丸ごと流用できるからテストの工数も増えないし、何より目でしっかり確認しながらテストできるのがかなりでかい
2022/03/03(木) 10:20:04.24ID:8QQBVbSl
storybookって糞重くね?
2022/03/03(木) 11:34:28.82ID:7C3IVuZ6
TSだとクソ重いけど高速化出来るよ
2022/03/03(木) 12:32:03.57ID:XelSrFhE
>>905
ありがとう。
なるほど良さそうだ。目に見えるのはありがたいね。
2022/03/03(木) 13:38:59.66ID:8QQBVbSl
>>907
どうやるの?
公式に書いてある情報?
2022/03/03(木) 15:09:58.45ID:7C3IVuZ6
公式ではないけどTSのReact Docgenがクソ重いのでそれをやめる
なのでstorybookのmain.jsにreact-docgenを使うようにする。

module.exports = {
typescript: { reactDocgen: 'react-docgen' }
}

あとstorybookは全部ビルドしようとするので必要なものだけビルドするようにするとか

const stories = () => {
return process.argv[4] === '-stories'
? [`../${process.argv[5]}`]
: [
'../src/components/**/*.stories.tsx'
];
};

module.exports = {
typescript: {reactDocgen: 'react-docgen'},
stories: () => stories(),
}
2022/03/03(木) 15:43:45.89ID:8QQBVbSl
>>910
storybookはあんま深入りしてないので
指摘は直ぐには解らんけど、
後で見てみます!
2022/03/03(木) 15:44:30.08ID:8QQBVbSl
>>907
糞重いのはtsだけなの?
2022/03/03(木) 16:15:55.61ID:7C3IVuZ6
jsでも沢山ストーリーがあったり重いプラグイン使ってたりすると遅いかと
その場合は二つ目に書いた必要なコンポーネントだけビルドするようにしたら良い
自分の環境だと20秒ぐらいかかってたのが2秒ぐらいになった
2022/03/03(木) 17:32:32.42ID:C6HSJF8/
コンポーネントからレンダリングに関係ないロジックを分離しろ、という習慣は間違いだったことに気付いた。
コンポーネントに関わるもの全てを密結合し神クラス(関数だが)にしたほうが、ずっと楽で再利用しやすかった。
どうせフロントの寿命は短い。カジュアルでよかったんだ。
2022/03/03(木) 19:46:02.22ID:cqHQsSV8
Vue2のSFP完成系ということでよろしいか?
2022/03/03(木) 21:20:31.78ID:0apx4zO0
コンポーネントによるでしょそんなの
2022/03/03(木) 22:10:01.18ID:mAysBGeY
Vue3派閥と戦ってる
なんか普通に負けそう
2022/03/03(木) 22:18:23.03ID:fxHVJI25
ほとんどの場合Vueのほうが書きやすいと思うんだよなあ
depsとかバグの温床だし、jsxも使えるし画面単位のコンポーネントはjsxよりもtemplateの方がメンテしやすい

割と変化激しいからVueの時代来る気がしている
俺の予想はよく外れる
2022/03/03(木) 22:53:58.27ID:5GVEVriD
BueはNativeで動かんし
2022/03/03(木) 23:06:06.30ID:CxPtyFsv
>>918
Vue2と3の断絶が悔やまれるね
Vue3.2なら悪くないどころかむしろ覇権取ってもおかしくないと思った
2022/03/03(木) 23:15:02.03ID:OzqlUzfy
veuはデルミネータ書き換えできるけどv-〜や@〜も別の識別子にかえられると嬉しいのだけど
他のフレーワークに組み込むときちょっと面倒
2022/03/04(金) 10:17:45.71ID:w/zWl7ko
よわよわエンジニア=Vueって認識ができちゃったのが痛い
まぁ実際そうなんだけども
2022/03/04(金) 10:37:42.90ID:tw4cyr50
よわよわでもできるということは優れたフレームワークということ
レス数が900を超えています。1000を超えると表示できなくなるよ。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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