X



Vue vs React vs Angular Part.2

■ このスレッドは過去ログ倉庫に格納されています
0432デフォルトの名無しさん
垢版 |
2019/04/18(木) 22:20:30.68ID:PeuY0IP9
>>429
Webシステムじゃよくわからん。
JavaScriptを一切使わないWebシステムだって有るんだし

> 別にそういうモノを作る予定なんてないって人はjQueryは使い続けてても全く支障はないと思うよ

ずっとそれを言ってる。ウェブであちこちのサイト見て、
そのサイト、アプリで作ればいいのに?って思うことある?
そういうことだよ。ウェブで皆が見てるものの大半は、アプリ用のフレームワークなんか使っちゃダメ
0436デフォルトの名無しさん
垢版 |
2019/04/19(金) 00:56:42.83ID:nz9XNE8t
実務の世界ではwebは運用を考えないといけないから
ビルド必須なのは辛いんだよね
JAM Stackにバリバリ行きたい気持ちはあるのだが
結局はjQueryを使った無難なサイトがメインになって
しまう
エンジニアは運用の視点を忘れたらいけない
サイト制作にはjQueryが必須だと思う。

でもSPAで作る時は日本語のドキュメントがまだ出て
来てないような最前衛の実装方法で暴走するけどねw
0440デフォルトの名無しさん
垢版 |
2019/04/19(金) 08:37:31.56ID:gmGy9oTC
ちょっとしたサイトなら、jQuery, Lo-dash のテンプレートエンジンで十分。
Underscore.js のテンプレートエンジンを使ったフレームワークが、Backborn.js

フレームワークを使うのは、データベースを使うような、web アプリ

Ruby のテンプレートエンジンの ERB でも、基本は、文字列を連結していくような原始的なもの
0441デフォルトの名無しさん
垢版 |
2019/04/19(金) 08:55:09.83ID:p/ztoCUW
本当にちょっとしたものならそんな何万文字ものライブラリいらんだろ

const template = ctx => `
<html>
<head><title>${ctx.daimei}</title></head>
<body>${ctx.naiyou}</body>
</html>
`

const data = {
daimei: '題名',
naiyou: '内容',
}

const html = template(data)
0442デフォルトの名無しさん
垢版 |
2019/04/19(金) 10:13:16.52ID:ZJZT2sL1
Vue試してみてるけど
Vuexってもしかして必須か
コンポーネント間の簡単な操作でも複雑に感じたわ

それならもうAngularみたいに全部入りでいいじゃんと思いました
0443デフォルトの名無しさん
垢版 |
2019/04/19(金) 10:19:03.41ID:JukS+GDU
>>442
世界中でどれか一つに統一されるならAngularをおしたい。
慣れた時の開発効率やわかりやすさはAngularだと思う。
0444デフォルトの名無しさん
垢版 |
2019/04/19(金) 11:22:56.56ID:GnXLTXUb
>>440
かいてることめちゃくちゃ

> ちょっとしたサイトなら、jQuery, Lo-dash のテンプレートエンジンで十分。
「ちょっとした」の意味がわからん。
そもそもテンプレートに大きいも小さいもないだろ

> フレームワークを使うのは、データベースを使うような、web アプリ
データベースならウェブアプリだけやなくウェブサイトでも使うし
それはフレームワークを使う理由にはならん。

> Ruby のテンプレートエンジンの ERB でも、基本は、文字列を連結していくような原始的なもの
文字列を連結ってなんのことを言ってるんだか。内部の実装の話なんか関係ないだろ
0446デフォルトの名無しさん
垢版 |
2019/04/19(金) 11:31:53.09ID:GnXLTXUb
>>441
> 本当にちょっとしたものならそんな何万文字ものライブラリいらんだろ
何万じゃサイズがわからん。

1万文字 = 10KB程度ってことでいいのか?
何万文字 = 数十KB、画像1枚分もなくて、
ADSLや光回線なら0.1秒以下、スマホの128kbps制限中でも
2〜3秒程度でダウンロードできるサイズ
だよね?

今度から「僅かなサイズのライブラリ」って書いてくれない?
意図的に多く見せようとしてるようにしか見えないからさw
0447デフォルトの名無しさん
垢版 |
2019/04/19(金) 11:35:38.96ID:GnXLTXUb
>>441
あとそのコードは単なる文字列中の変数埋め込み
テンプレートエンジンを名乗るなら、ループと条件分岐ぐらいは
対応してないとだめだろう
0448デフォルトの名無しさん
垢版 |
2019/04/19(金) 12:33:46.65ID:p/ztoCUW
>>447
だから簡単なものならそれで十分だろうと言ってるんだが。
そんなもの必要に応じて関数書きゃいいだろう。
0452デフォルトの名無しさん
垢版 |
2019/04/19(金) 13:32:46.93ID:ZJZT2sL1
破壊的な変更が原因でしょう
また大幅な変更あるのではとリスクを嫌ってる
0456デフォルトの名無しさん
垢版 |
2019/04/19(金) 16:08:56.45ID:9mBO7kZI
>>453
それも結局はXHRと一緒なんじゃない?
原始的で汎用的なものを提供するけど結局ラッピングされたものの方が使いやすいってなると思う
0457デフォルトの名無しさん
垢版 |
2019/04/19(金) 16:21:41.87ID:GnXLTXUb
>>456
> それも結局はXHRと一緒なんじゃない?

なんでXHRの話なんか出てくるんだ?
UIコンポーネントの話なんだが

> 原始的で汎用的なものを提供するけど結局ラッピングされたものの方が使いやすいってなると思う

そりゃラッピングされたもののほうが使いやすいでしょw
だからjQueryの方が使いやすいんだし。

問題は、WebComponentsをラッピングしたものは、AngularやVueやReactとは別のものになるってこと。
AngularやVueやReactもWebComponentsを考慮しつつ開発してるんだろうが、
WebComponentsが最終的にどうなるのかわからないし、
WebComponentsがない時代の設計をWebComponentsに最適化するのは大変。
どうせWebComponentsに最適化された新しいフレームワークが出るに決まってる。
そしたら今のフレームワークは全部おさらばw
0459デフォルトの名無しさん
垢版 |
2019/04/19(金) 17:14:03.31ID:22g/XrvX
>>457
html5だかECMAScriptだかの標準仕様を持ち上げるって意味では一緒じゃね?
WebComponentsもXMLHttpRequestも逆に何が違うって言うんだよ?
0460デフォルトの名無しさん
垢版 |
2019/04/19(金) 19:30:52.27ID:PWe5dNBv
なんも作ってない人ってなんでこんなにわかりやすいバカさを露呈しちゃうんだろうね。
0461デフォルトの名無しさん
垢版 |
2019/04/19(金) 19:50:06.07ID:n8mFcZJ1
web componentに過剰に期待しちゃダメだよ。仕様を大きく超えて肥大化した今のフレームワークのほんの一部を標準化しますってだけ。
少し触ってみれば分かるが期待とは別物。到底現状のコンポーネントが置き換わるレベルじゃない。
0462デフォルトの名無しさん
垢版 |
2019/04/19(金) 21:06:05.48ID:GnXLTXUb
>>459
> WebComponentsもXMLHttpRequestも逆に何が違うって言うんだよ?

WebComponentsはコンポーネントを作るAPI
いろんな人や会社がコンポーネントを作って配布することになるだろう。
ここが大きな違い。

XMLHttpRequestはそれ単体で使うものだが、
WebComponentsは、そのAPIを使ってコンポーネントを作る人と
作られたコンポーネントを使う人に分かれる
0464デフォルトの名無しさん
垢版 |
2019/04/19(金) 21:36:51.67ID:wiWuuxML
>>455
使ったことないアホどもの人気投票だろうな
0465デフォルトの名無しさん
垢版 |
2019/04/19(金) 21:40:08.98ID:GnXLTXUb
>>463
そうだよ?やってることがかぶってるから
WebComponents(ウェブ標準)に置き換わるって言ってんの
0469デフォルトの名無しさん
垢版 |
2019/04/19(金) 23:23:08.94ID:ZJZT2sL1
とにかくJSフレームワークは
他人のコードみたくないし保守したくない
作り逃げの案件しかやりたくねー
0471デフォルトの名無しさん
垢版 |
2019/04/19(金) 23:57:01.13ID:dMoQXjko
まぁwasmを独自タグ化できるとかならワンチャンなくもないかも知れんけど
ウェブ標準とReactなら大半の人はReact選ぶと思うけどね
0472デフォルトの名無しさん
垢版 |
2019/04/20(土) 00:08:48.19ID:V6hNb77K
それにしてもAngularはホント使ってるとこ見ないよね技術書展のサイトくらいしかまともに使ってるとこ見たことない
Reactは動画配信サイトの類とかでわりと使ってるところよく見る
Vueはライブラリとして読み込んでるサイトはわりとあるけどフレームワークとして(Vuex,vue-routerとか使って)ガッツリ作り込んでるところ半分くらいで他はjQueryとの共存でだましだましに使ってるんじゃないかとね
0475デフォルトの名無しさん
垢版 |
2019/04/20(土) 06:58:25.30ID:lwVpLCzw
>>472
react,vueくらいならちょこっと作るのもそこまで苦じゃないけど
angularはなんか闇を感じるぞ。。
0476デフォルトの名無しさん
垢版 |
2019/04/20(土) 07:42:58.61ID:rcvSJkam
>>441
HTMLエンコードも、しないといけない。
「& < > "」などを、「&」「&lt;」「&gt;」「&quot;」に置換

Ruby のERB では、
結果を出力するなら、<% = 式 >
しないなら、<% 式 >

<% # コメント >

地の文(Rubyの式以外)で、<% を使う、
または、ERBタグ内で、%> を使う場合は、% を2重にする(エスケープ)
0477476
垢版 |
2019/04/20(土) 07:51:06.41ID:rcvSJkam
自己レス
>「& < > "」などを、「&」「&lt;」「&gt;」「&quot;」に置換

あれ? どうして「&」と表示されたのか?

「&」(全角なら「&amp;」)と書いたのに。
5ch のバグ?
0478476
垢版 |
2019/04/20(土) 07:58:58.23ID:rcvSJkam
自己レス
>「&」(全角なら「&amp;」)と書いたのに。

「&」
ここには半角で「& a m p ;」(ただし、空白を除く)、
全角で書くと「&amp;」と書いているけど、「amp;」が表示されない!

なぜ?
0479デフォルトの名無しさん
垢版 |
2019/04/20(土) 08:22:32.49ID:kIPwVBjm
vueできますの人ってJQueryの延長で使えてるだけの人多いから危険だわ
Reactできますの人雇った方が安全
アプリとしての設計できるか否かと文法覚えたからコード書けますは違うから
Reactできるなら設計できると考えていい
0480デフォルトの名無しさん
垢版 |
2019/04/20(土) 08:31:55.09ID:bPC53Tje
>>478
2chの頃からUnicodeの表示には10進文字参照使ってるから
&のエスケープだけ効くようになってる
&amp;amp;と書けばいい
0482デフォルトの名無しさん
垢版 |
2019/04/20(土) 09:44:58.55ID:V6hNb77K
ちゃんとしっかり向き合えば難しいって事はないよ
Reduxだって書いてれば慣れるし慣れればそれほど難解じゃない

一回ベタでJSX書いてそこから部品になりそうなものを切り出したら
次に似たような画面作る時劇的に手間が減ったりする
0483デフォルトの名無しさん
垢版 |
2019/04/20(土) 09:50:31.75ID:YjCevdff
Aureria使ってるけど全然難しくないぞ
Reactも難しくはないんだろう
むしろVueってそんなに簡単なの?
0484デフォルトの名無しさん
垢版 |
2019/04/20(土) 10:18:20.36ID:V6hNb77K
どのフレームワークも書き方が違うだけで構成する要素(状態、ルーティング、コンポーネント)は似たり寄ったりだと思うよ
ただVueの場合
<div id="app">

</div>
をルートコンポーネントとしてVueに関連付けるのにdiv涛烽フDOMをそのまま使えるっていうのが新規にはとっつきやすい一因だと思う
もちろん別ファイルに書いたルートコンポーネントをマウントすることもできるけど

DOMがそのまま→既存のサイトに追加できるって事で入りやすいんだろうけど
できたものはカオスなんだろうなって思う
0488デフォルトの名無しさん
垢版 |
2019/04/20(土) 13:50:29.73ID:OSkkX2tB
>>487
静的なHTMLは、サーバーに置いたHTMLを表示するだけ
動的なHTMLは、データベースなどにアクセスしてHTMLを動的に生成するもの

どちらもJavaScript使用の有無は関係ないのですよ
0490デフォルトの名無しさん
垢版 |
2019/04/20(土) 14:20:12.59ID:Yj5VNfn5
>>481
Reactは設計や構造を考えられる人じゃないと
まともに動くモノは組めないからね
学習コストはAngularより低いけども設計力が必要

Reactに関しては得手不得手が分かれると思う
合ってる人なら即日使えるようになる
苦手な人は勉強しても駄目かもしれない
0492デフォルトの名無しさん
垢版 |
2019/04/20(土) 14:28:03.53ID:lwVpLCzw
設計や構造を考えないで動的に動くview作ろうってのがそもそも間違いじゃね?
と思うんだが。
0493デフォルトの名無しさん
垢版 |
2019/04/20(土) 14:34:34.23ID:OSkkX2tB
(汎用の)コンポーネントを作るという考え方で作れば良いんですよ。
そうすれば、全体を考えなくていい。
0494デフォルトの名無しさん
垢版 |
2019/04/20(土) 14:43:31.02ID:lwVpLCzw
んなこたない。
部品で分けても結局どう繋ぐかって問題は出てくる。
だからコールバックを引き回すのかreduxみたいな一周するパターンを使うのか考えるわけだ。
0495デフォルトの名無しさん
垢版 |
2019/04/20(土) 14:52:25.93ID:UeTDxeBd
まだプログラミング自体初心者だった頃に、個人で何か作ろうとしてみたりしてたときは、確かに設計なんかせずに順番に動くように動くようにプログラミングしてたわ。
0496デフォルトの名無しさん
垢版 |
2019/04/20(土) 15:52:34.64ID:MO877tOl
reactもvueも適材適所でいいんじゃない?設計は別のレベルの話だろう。所詮道具なんだしさ。いやそれを議論するスレだったなw
0497デフォルトの名無しさん
垢版 |
2019/04/20(土) 16:20:16.32ID:aNolGhqF
大抵の人はjqueryを使う規模で十分であるが
jqueryで何か新しく書こうとなると辛い
そこで規模にマッチするのがVueになるからVueが人気
0499デフォルトの名無しさん
垢版 |
2019/04/21(日) 16:13:30.43ID:+n/bTUR6
周りvue使う奴ばかりで俺だけReactだから取り残された感がある
0507デフォルトの名無しさん
垢版 |
2019/04/22(月) 00:44:30.62ID:gmJvG001
Reduxって親コンポーネントに偽装してReduxのステートをPropsとして受け取る感じなんだね
慣れてくればそれほどstateと変わらない感じ
0509デフォルトの名無しさん
垢版 |
2019/04/22(月) 10:51:29.31ID:YqOHOoCK
>>505
vdomとbindingはロジック部分を根本から変えた。後戻りできない部分だな。他はjQueryでも無理すれば代替できん事はないが。
0510デフォルトの名無しさん
垢版 |
2019/04/22(月) 10:54:01.25ID:7SFj5xSv
ロジック部分ってなに?

普通ロジック部分っていうと、UIは除いた部分のことだから
jQuery使っても同じはずだが?
0511デフォルトの名無しさん
垢版 |
2019/04/22(月) 10:57:48.25ID:YqOHOoCK
>>508
ページ単位で小規模に適用する分にはvueにTSは必要ない。コスト上がるだけでvueのフットワークを殺す。
新規なら先日nuxtがv2.5で完全にTS対応したから最初からそっち使った方が良いよ。にしてもnuxt-tsはキモかった。
0512デフォルトの名無しさん
垢版 |
2019/04/22(月) 11:21:42.95ID:YqOHOoCK
>>510
JQueryはdomが主役だがbindingはデータが主。だからデータ構造とそれを処理するロジックが根本から違う。これ以上はスレチになるから深くは説明しないが。
0514デフォルトの名無しさん
垢版 |
2019/04/22(月) 11:38:12.52ID:7SFj5xSv
もしかしてVueとかって、UI部分とロジックが分離できない?
密結合しちゃってるの?
0516デフォルトの名無しさん
垢版 |
2019/04/22(月) 12:41:52.02ID:Qg5wsU4m
基本的なMVCアーキテクチャだけで良いのにね
意識高い馬鹿コーダーが変な技術を持ってくる

極論言ったらJavaScriptだけでも作れるのに
0517デフォルトの名無しさん
垢版 |
2019/04/22(月) 12:42:29.17ID:YqOHOoCK
>>513
何の話なんだそれ。
>>514
逆だよって今更すぎる。

テーブルがあって1行追加したいとしよう。jQueryだと
$().append(..render(..).html())
に似た処理をどこかで入れるだろ?元のデータは何なら”破棄しても良い”。domが主だから。ココが違う部分だからよく考えて。
bindingだとlistに1行追加するだけ。
list.push({})
あとは自分で調べて。スレチで長々とすまん皆の衆。
0518デフォルトの名無しさん
垢版 |
2019/04/22(月) 14:05:19.86ID:RnNzdTFJ
最初からSPA作る目的ならならわかるけど
そうでなければReactもVueもう導入した先は絶対カオスになるだろ
0519デフォルトの名無しさん
垢版 |
2019/04/22(月) 15:07:19.65ID:i3ajZQCG
>>517
> bindingだとlistに1行追加するだけ。
嘘ついたらいかんよ。
HTMLにごちゃごちゃ書かないとダメだろ。ループ処理とか
JSXかもしれんが
0520デフォルトの名無しさん
垢版 |
2019/04/22(月) 15:10:48.91ID:i3ajZQCG
jQueryでもvueでもデータそのものは、listに1行追加するだけなんだよ。

そとは、そのlistのデータを見て、JavaScript(jQuery)でHTMLを生成するか、
vueを使って、HTMLのテンプレートでlistみてループ処理やって、場合によってはif文相当のことをかいて
どの変数がどの部分に埋め込まれるか書いて、どのイベントがどのハンドラに対応するかをかいて
ようやく連携が取れるんだよ
0527デフォルトの名無しさん
垢版 |
2019/04/22(月) 17:47:05.54ID:RnNzdTFJ
不毛だよなぁ
react、vue、angular使えますとか
rails、laravel、spring boot使えますとか

どっちもどっちか一つでいいのに…
複数学ぶのは時間の無駄で、技術選択する時間も馬鹿にできんし
■ このスレッドは過去ログ倉庫に格納されています