探検
Vue vs React vs Angular
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5f9f-WCtl)
2018/12/21(金) 21:37:36.86ID:NZqrEm960実際どうなん?
Vue
https://jp.vuejs.org/
React
https://reactjs.org/
Angular
https://angular.io/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
708デフォルトの名無しさん (スッップ Sdbf-alFK)
2019/03/06(水) 08:55:10.29ID:lkGca0kGd そういう意味ならJSFがある
709デフォルトの名無しさん (ワッチョイ ff3a-NqO3)
2019/03/06(水) 22:12:48.11ID:oR6mPeK70 スレ違いかもしれないけど、たまには気分転換にvueとかreactとかの話題はどうかな?
710デフォルトの名無しさん (ワッチョイ 9f6a-s6K6)
2019/03/06(水) 23:50:49.60ID:1pbO3u+T0 Reactの仮想DOMとかいうのが未だに分からん
HTMLをオブジェクトの木構造にしないで文字列のままで握ってるってことでOK?
HTMLをオブジェクトの木構造にしないで文字列のままで握ってるってことでOK?
711デフォルトの名無しさん (ワッチョイ eb4e-F75Q)
2019/03/07(木) 02:22:49.29ID:/M0SxS0j0 >>710
違う。
メモリ上に持つ実DOMの劣化レプリカ。
そして利用者は実DOMはイジらず、劣化レプリカの方をイジる。
angular react vueなどの仮想dom系のライブラリが劣化レプリカの変化から、最小の実dom操作を計算して適用。
昔は人がやってた仕事がライブラリに委譲された格好。
違う。
メモリ上に持つ実DOMの劣化レプリカ。
そして利用者は実DOMはイジらず、劣化レプリカの方をイジる。
angular react vueなどの仮想dom系のライブラリが劣化レプリカの変化から、最小の実dom操作を計算して適用。
昔は人がやってた仕事がライブラリに委譲された格好。
712デフォルトの名無しさん (アウアウカー Sa6f-P5ld)
2019/03/07(木) 02:44:23.97ID:FkBKY4Sxa HTML のタグを javascript のオブジェクトで単純に表現しただけのもの。react であれば、createElement 関数で生成されるオブジェクトのことになる。で、そのインスタンスの変化に合わせて実際の HTML に反映してくれる。
713デフォルトの名無しさん (ワッチョイ 126a-gi2a)
2019/03/07(木) 03:07:16.07ID:7lOwuU310 >>711
HTMLElementじゃないけど似たようなのをツリーで持ってるのか
HTMLElement.clone(true)でページ全体のクローンを作って、
それをDOM操作してからdocument.documentElementに差し替えるのかと思ってた
単純にFragment使ってDOM操作するより速いのか気になる
HTMLElementじゃないけど似たようなのをツリーで持ってるのか
HTMLElement.clone(true)でページ全体のクローンを作って、
それをDOM操作してからdocument.documentElementに差し替えるのかと思ってた
単純にFragment使ってDOM操作するより速いのか気になる
714デフォルトの名無しさん (ワッチョイ a701-RjaY)
2019/03/07(木) 07:22:52.72ID:rioBJ/QG0 やってることは実DOMの変更をバッファして
変更タイミングをいい感じでやってくれてるってことじゃないの?
変更タイミングをいい感じでやってくれてるってことじゃないの?
715デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/07(木) 08:43:40.11ID:oVD+pZgg0 >>713
> 単純にFragment使ってDOM操作するより速いのか気になる
速くならない
× 仮想DOMは速い
○ 仮想DOMは遅くならないように頑張っている
速い速い詐欺のどこが詐欺かって言うと
何より速いかを書いてない所
仮想DOMの最初の発想は、実DOMと同じような内容をメモリ内に保持しておいて、
仮想DOMから実DOMをすべて生成しよう!という発想
もともとはゲームから来ている発想。
ゲームは1秒間に60回ぐらいメモリ内容を元に画面全体を書き換えている。
変更があるたびにDOM全体を書き換える。
当然DOMでそんなことやったら遅いって思うよな?
そこで差分を計算して変更があった所だけ書き換える
つまり
○ 仮想DOMは画面全体を書き換える発想だが、差分だけを書き換えるから、画面全体を書き換えるより速い
と言ってるだけ
そもそも実DOMを操作しているときは、必要最小限のものしか書き換えないので
仮想DOMが差分(必要なところ)だけ書き換えるといっても、それ普通ですよね?という話でしか無い。
むしろ仮想DOMは実DOM操作よりメモリ使用量は増えるし、差分計算の分遅くなってる。
> 単純にFragment使ってDOM操作するより速いのか気になる
速くならない
× 仮想DOMは速い
○ 仮想DOMは遅くならないように頑張っている
速い速い詐欺のどこが詐欺かって言うと
何より速いかを書いてない所
仮想DOMの最初の発想は、実DOMと同じような内容をメモリ内に保持しておいて、
仮想DOMから実DOMをすべて生成しよう!という発想
もともとはゲームから来ている発想。
ゲームは1秒間に60回ぐらいメモリ内容を元に画面全体を書き換えている。
変更があるたびにDOM全体を書き換える。
当然DOMでそんなことやったら遅いって思うよな?
そこで差分を計算して変更があった所だけ書き換える
つまり
○ 仮想DOMは画面全体を書き換える発想だが、差分だけを書き換えるから、画面全体を書き換えるより速い
と言ってるだけ
そもそも実DOMを操作しているときは、必要最小限のものしか書き換えないので
仮想DOMが差分(必要なところ)だけ書き換えるといっても、それ普通ですよね?という話でしか無い。
むしろ仮想DOMは実DOM操作よりメモリ使用量は増えるし、差分計算の分遅くなってる。
716デフォルトの名無しさん (アメ MMdb-F75Q)
2019/03/07(木) 08:54:40.49ID:NrdLaj5lM 実DOM操作自体の速度は当然変わらない。
人が書くか仮想DOMライブラリがやるかの違いだけ。
ライブラリは実DOM操作の回数を減らすため仮想DOM持って計算頑張ってるだけ。
「DOM操作が速くなる」とか言ってるのは全部嘘。
人が書くか仮想DOMライブラリがやるかの違いだけ。
ライブラリは実DOM操作の回数を減らすため仮想DOM持って計算頑張ってるだけ。
「DOM操作が速くなる」とか言ってるのは全部嘘。
717デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/07(木) 09:00:44.74ID:oVD+pZgg0 > 人が書くか仮想DOMライブラリがやるかの違いだけ
人は「全体の中から差分を計算してそこだけ書き換える」
なんてことはやってないですよ。
人はある処理の中でDOMのどの部分を書き換えたいかを
知っているので、必要最小限のDOM操作しか変更しない
(クソプログラマなら全部消して作り直すとかいう無駄してるかもしれんが)
その全部消して作り直すっていうのをやろうという発想が仮想DOMで
遅くならないように差分を計算して、必要最小限のものだけ変えよう。というふうに
自分で遅くしておいて、自分で改善した(速くした)って言ってるだけなんです
人は「全体の中から差分を計算してそこだけ書き換える」
なんてことはやってないですよ。
人はある処理の中でDOMのどの部分を書き換えたいかを
知っているので、必要最小限のDOM操作しか変更しない
(クソプログラマなら全部消して作り直すとかいう無駄してるかもしれんが)
その全部消して作り直すっていうのをやろうという発想が仮想DOMで
遅くならないように差分を計算して、必要最小限のものだけ変えよう。というふうに
自分で遅くしておいて、自分で改善した(速くした)って言ってるだけなんです
718デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/07(木) 09:10:38.72ID:FKXLE38I0 速度に関しては実dom直接操作よりは遅い。その辺はググればすぐ出るから見とくと良い。ただおかけでリアクティブという大きなメリットを手に入れた。ページ切り替えさえ差分更新してspaも出来る訳で、レスポンスは全体的に向上する。
719デフォルトの名無しさん (アメ MMdb-F75Q)
2019/03/07(木) 09:19:40.62ID:NrdLaj5lM 人はある処理の中でDOMのどの部分を書き換えたいかを
知っている(担当の頭の中にある)ので、必要最小限のDOM操作しか変更しない。
人の頭に依存しないように機械的に
最小限のDOM操作を特定・適用までやろうとしたのが仮想DOM系ライブラリ。
人が脳のリソース使ってやるか仮想DOMライブラリが自動でやるかの違いだけ。
知っている(担当の頭の中にある)ので、必要最小限のDOM操作しか変更しない。
人の頭に依存しないように機械的に
最小限のDOM操作を特定・適用までやろうとしたのが仮想DOM系ライブラリ。
人が脳のリソース使ってやるか仮想DOMライブラリが自動でやるかの違いだけ。
720デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/07(木) 09:27:16.66ID:oVD+pZgg0 ここで忘れてはいけないのは
> ただおかけでリアクティブという大きなメリットを手に入れた。ページ切り替えさえ差分更新してspaも出来る訳で、レスポンスは全体的に向上する。
リアクティブは本当に必要なのか?
SPAは本当に必要なのか?
ということ
世の中の多くのソフトウェアはリアクティブなんか使っていない。
それでまともに動く製品を作れている。
SPAもそうだ。ユーザーにとってはシングルページだろうが、マルチページだろうが関係ない。
シングルページだとページごとに分担して開発するのが難しくなる。
マルチページなら、ページごとに別の人が担当して開発するのが楽である。
> ただおかけでリアクティブという大きなメリットを手に入れた。ページ切り替えさえ差分更新してspaも出来る訳で、レスポンスは全体的に向上する。
リアクティブは本当に必要なのか?
SPAは本当に必要なのか?
ということ
世の中の多くのソフトウェアはリアクティブなんか使っていない。
それでまともに動く製品を作れている。
SPAもそうだ。ユーザーにとってはシングルページだろうが、マルチページだろうが関係ない。
シングルページだとページごとに分担して開発するのが難しくなる。
マルチページなら、ページごとに別の人が担当して開発するのが楽である。
721デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/07(木) 09:52:31.84ID:FKXLE38I0 リアクティブのメリットは複雑な入力フォームが分かりやすい。pc購入する際のカスタマイズ画面なんかが良い例。以前と比べて工期の短縮できて保守が凄く楽。部分的な導入も出来るからvueで試せば分かる。フォーム周りは圧倒的にリアクティブが良い。
722デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/07(木) 09:57:57.50ID:oVD+pZgg0723デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/07(木) 10:01:54.73ID:oVD+pZgg0 >>721
その例ってこんな程度でいいの?
https://www.dell.com/ja-jp/shop/serviceselection/cai401cspgmt04oo3ijp?selectionState=&cartItemId=
https://www.dospara.co.jp/5goods_pc/pc_bto.php?h=d&f=d&m=pc&tg=13&mc=8374&sn=3619&vn=1&lf=0
その例ってこんな程度でいいの?
https://www.dell.com/ja-jp/shop/serviceselection/cai401cspgmt04oo3ijp?selectionState=&cartItemId=
https://www.dospara.co.jp/5goods_pc/pc_bto.php?h=d&f=d&m=pc&tg=13&mc=8374&sn=3619&vn=1&lf=0
724デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/07(木) 10:43:49.16ID:FKXLE38I0725デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/07(木) 10:54:23.39ID:oVD+pZgg0 >>724
やっぱり使い方がわかってないだけだな
ある入力に複数の要素が動的に変わるならば、
その要素の親に、クラスをつけて、
あとはCSSで、それ以下の要素の表示、非表示状態を切り替えるだけだよ
jQueryだと最低3行。あとはCSSでおしまい。
やっぱり使い方がわかってないだけだな
ある入力に複数の要素が動的に変わるならば、
その要素の親に、クラスをつけて、
あとはCSSで、それ以下の要素の表示、非表示状態を切り替えるだけだよ
jQueryだと最低3行。あとはCSSでおしまい。
726デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/07(木) 11:05:05.80ID:oVD+pZgg0 前から思ってるんだけど(自称)プログラマって
HTML/CSSは嫌いです。出来ません。って人多いよね。
それを毛嫌いしてるというか、CSSなんてデザイナが使うもんだろ
馬鹿にしている感じで、俺出来ないから(笑)みたいな感じで言う。
恥ずかしいと思ってないんだろう。
多くのDOM要素はCSSを使って単に見えなくしたり表示したりすればいいだけなんだが
(プログラマとしての技術力不足で)CSSを使えないから
JavaScriptでいちいち作り出したり削除するしか出来ないんだよな
HTML/CSSは嫌いです。出来ません。って人多いよね。
それを毛嫌いしてるというか、CSSなんてデザイナが使うもんだろ
馬鹿にしている感じで、俺出来ないから(笑)みたいな感じで言う。
恥ずかしいと思ってないんだろう。
多くのDOM要素はCSSを使って単に見えなくしたり表示したりすればいいだけなんだが
(プログラマとしての技術力不足で)CSSを使えないから
JavaScriptでいちいち作り出したり削除するしか出来ないんだよな
727デフォルトの名無しさん (ブーイモ MM0e-4xo3)
2019/03/07(木) 16:04:46.19ID:uSXw2eVGM728デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/07(木) 17:22:06.09ID:oVD+pZgg0729デフォルトの名無しさん (スプッッ Sd52-P8NU)
2019/03/07(木) 18:14:20.13ID:mVKClUMzd 簡単にいい感じのページが作れるのはメリットの一つだと思うけどな。
例えばpythonは成果物に関してはCに対するメリットはないけど簡単に作れるから人気なわけで。
例えばpythonは成果物に関してはCに対するメリットはないけど簡単に作れるから人気なわけで。
730デフォルトの名無しさん (ブーイモ MM0e-4xo3)
2019/03/07(木) 21:20:18.65ID:bV0vVOYFM731デフォルトの名無しさん (ワッチョイ dff2-uGU8)
2019/03/07(木) 22:37:46.71ID:cPei42ec0 >人はある処理の中でDOMのどの部分を書き換えたいかを
>知っているので、必要最小限のDOM操作しか変更しない
>(クソプログラマなら全部消して作り直すとかいう無駄してるかもしれんが)
クソプログラマは全部消して作り直す
賢いプログラマはどうDOM操作すれば最適かなどという生産性のない仕事をフレームワークに任せる
>知っているので、必要最小限のDOM操作しか変更しない
>(クソプログラマなら全部消して作り直すとかいう無駄してるかもしれんが)
クソプログラマは全部消して作り直す
賢いプログラマはどうDOM操作すれば最適かなどという生産性のない仕事をフレームワークに任せる
732デフォルトの名無しさん (アウアウウー Sac3-cVal)
2019/03/07(木) 22:42:13.25ID:N/E4f3Caa733デフォルトの名無しさん (ワッチョイ 1202-4dCE)
2019/03/07(木) 22:55:10.59ID:Tta1cO7U0 GoogleもこれからPWAで攻めてきそうだけどね
734デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/07(木) 22:59:25.97ID:Y4GuSkwR0735デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/07(木) 23:00:35.30ID:Y4GuSkwR0 >>731
> 賢いプログラマはどうDOM操作すれば最適かなどという生産性のない仕事をフレームワークに任せる
もっと賢いプログラマは、必要なことしかしないんだよ。
Aを変えたいなら、Aだけを変えましょう。ってね
> 賢いプログラマはどうDOM操作すれば最適かなどという生産性のない仕事をフレームワークに任せる
もっと賢いプログラマは、必要なことしかしないんだよ。
Aを変えたいなら、Aだけを変えましょう。ってね
736デフォルトの名無しさん (アウアウウー Sac3-cVal)
2019/03/07(木) 23:01:50.74ID:N/E4f3Caa >>734
domの状態数は多すぎるよ
domの状態数は多すぎるよ
737デフォルトの名無しさん (アウアウウー Sac3-cVal)
2019/03/07(木) 23:04:15.56ID:N/E4f3Caa738デフォルトの名無しさん (アウアウカー Sa6f-F7Qp)
2019/03/07(木) 23:09:46.27ID:oTfLqBj1a まあ本当に賢いプログラマ達はフロントエンドなんてやらないんですけどね
739デフォルトの名無しさん (アウアウウー Sac3-cVal)
2019/03/07(木) 23:11:14.61ID:N/E4f3Caa >>738
それは同意
それは同意
740デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/07(木) 23:12:46.45ID:Y4GuSkwR0 AしたらBを変えたいんですが?
Reactを使うと・・・・
ではBを変数に結びつけましょう。
そういうコードを書き換えます。
そうすれば変数を変えればBも変わります。
おっと待ってください。
そのために変数をSTOREに入れなければいけません。
STOREからとってきて、STOREを更新・・・いえいえいけません
新しくオブジェクトを作るのです。
そのオブジェクトを作るために〜
オブジェクトを変更する関数を用意するのです!
その関数を作るための、はい、メッセージが必要ですね。
えぇ、ですからね、AしたらAction Creatorを使ってactionを生成して
Storeに対してactinonをDispatchして、ReducerがDispatchに反応して
actionタイプから今の状態から新しい状態を変更すれば、
ほら簡単にBが変わるんです!
え?普通にAイベントのハンドラでBを変えればいいじゃないかって?
ムキー!
Reactを使うと・・・・
ではBを変数に結びつけましょう。
そういうコードを書き換えます。
そうすれば変数を変えればBも変わります。
おっと待ってください。
そのために変数をSTOREに入れなければいけません。
STOREからとってきて、STOREを更新・・・いえいえいけません
新しくオブジェクトを作るのです。
そのオブジェクトを作るために〜
オブジェクトを変更する関数を用意するのです!
その関数を作るための、はい、メッセージが必要ですね。
えぇ、ですからね、AしたらAction Creatorを使ってactionを生成して
Storeに対してactinonをDispatchして、ReducerがDispatchに反応して
actionタイプから今の状態から新しい状態を変更すれば、
ほら簡単にBが変わるんです!
え?普通にAイベントのハンドラでBを変えればいいじゃないかって?
ムキー!
741デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/07(木) 23:14:47.91ID:Y4GuSkwR0 >>737
> それをわざわざdom/cssの物理構造に縛られた迂遠な方法で管理するのは確かに賢くないな
だから、CSSを使うといいですね。
JavaScirptからは親となる要素にクラスを設定するだけなんですよ。
簡単。DOMがどういう構造になっているかなんて関係ない。
あとはデザインを作る人が、その状態でどう表示したいかを作るだけなんです。
> それをわざわざdom/cssの物理構造に縛られた迂遠な方法で管理するのは確かに賢くないな
だから、CSSを使うといいですね。
JavaScirptからは親となる要素にクラスを設定するだけなんですよ。
簡単。DOMがどういう構造になっているかなんて関係ない。
あとはデザインを作る人が、その状態でどう表示したいかを作るだけなんです。
742デフォルトの名無しさん (オッペケ Src7-EzoF)
2019/03/07(木) 23:23:16.99ID:jEbiMY7gr fluxの概念を取り入れたらものすごく簡単に状態管理ができる!
って本にもキータにもみんな書いてるんだけど?
って本にもキータにもみんな書いてるんだけど?
743デフォルトの名無しさん (アウアウウー Sac3-cVal)
2019/03/07(木) 23:23:24.15ID:N/E4f3Caa >>741
私が管理したいのは見えるか見えないかという2つの純粋な状態なんです
ブーリアンで済むものをわざわざスタイルシートやらクラスなどといった迂遠な方法で管理したくないんです
それはまるで物体から投影された影に干渉して、もとの物体を操ろうとするような愚かなことです
私が管理したいのは見えるか見えないかという2つの純粋な状態なんです
ブーリアンで済むものをわざわざスタイルシートやらクラスなどといった迂遠な方法で管理したくないんです
それはまるで物体から投影された影に干渉して、もとの物体を操ろうとするような愚かなことです
744デフォルトの名無しさん (ワッチョイ ff3d-g2Ga)
2019/03/07(木) 23:58:03.68ID:tvHZX0HA0 どっちも極端じゃないか?
バインディングならjQueryよりはVueやReact使った方がいいと思うけど、
表示非表示やアニメーションならcss側でやった方がいいと思う。
バインディングならjQueryよりはVueやReact使った方がいいと思うけど、
表示非表示やアニメーションならcss側でやった方がいいと思う。
745デフォルトの名無しさん (ワッチョイ 126a-gi2a)
2019/03/08(金) 00:38:11.11ID:kMybevyH0 仮想DOMとJQueryの世代の重要な違いとして
セレクタやDOM操作を一切したくないという発想があるのではないだろうか
JSXでHTMLをそのまま書くのもセレクタを使いたくないからだろうし
セレクタやDOM操作を一切したくないという発想があるのではないだろうか
JSXでHTMLをそのまま書くのもセレクタを使いたくないからだろうし
746デフォルトの名無しさん (ワッチョイ 162c-1cTK)
2019/03/08(金) 00:47:24.38ID:N66/0TP00 実DOM では、IO 操作が遅い
仮想DOMでは、JavaScript内の操作だけだから、速い
仮想DOMでは、JavaScript内の操作だけだから、速い
747デフォルトの名無しさん (ワッチョイ 126a-gi2a)
2019/03/08(金) 01:03:32.93ID:kMybevyH0 それはHTMLFragmentがあれば事足りる話っしょ
748デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 10:15:11.65ID:jbQifWXg0 >>743
> ブーリアンで済むものをわざわざスタイルシートやらクラスなどといった迂遠な方法で管理したくないんです
だからセレクタのクラスはブーリアンなんだよ
ある要素に、flagクラスというブーリアン値が
立っているか、立っていないか
> ブーリアンで済むものをわざわざスタイルシートやらクラスなどといった迂遠な方法で管理したくないんです
だからセレクタのクラスはブーリアンなんだよ
ある要素に、flagクラスというブーリアン値が
立っているか、立っていないか
749デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 10:16:08.10ID:jbQifWXg0750デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 11:13:41.54ID:/TYC9ex30 >>725
リアクティブだと一行で終わるよね。単に変数をfalseにするだけ。ミスしようがない。うーん、なんでjQueryやcssにそこまでこだわるかね。みんな散々苦労してきた末のスマートな解決方法が仮想domでありリアクティブなんだけどな。一度試してみたら?食わず嫌いしないでさ。
リアクティブだと一行で終わるよね。単に変数をfalseにするだけ。ミスしようがない。うーん、なんでjQueryやcssにそこまでこだわるかね。みんな散々苦労してきた末のスマートな解決方法が仮想domでありリアクティブなんだけどな。一度試してみたら?食わず嫌いしないでさ。
751デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 11:17:51.39ID:jbQifWXg0 > リアクティブだと一行で終わるよね。単に変数をfalseにするだけ。
終わらねーよw 変数みてデザインを変えるコードを書かないとだめだろ
終わらねーよw 変数みてデザインを変えるコードを書かないとだめだろ
752デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 11:28:53.74ID:/TYC9ex30753デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 11:35:19.90ID:jbQifWXg0 > そう、まさにそこがキモ。ロジックとuiが綺麗に分離されてる。
別れてないよ。JavaScriptファイルを編集してもらわないといけない
CSSだと「プログラマの俺は、この要素のクラスを設定するだけです。
デザイナーさん、あとはかっこいいデザインを作ってください!」といえる
デザイナーはJavaScriptファイルを一切触らずに
デザインを作り込むことができる。
別れてないよ。JavaScriptファイルを編集してもらわないといけない
CSSだと「プログラマの俺は、この要素のクラスを設定するだけです。
デザイナーさん、あとはかっこいいデザインを作ってください!」といえる
デザイナーはJavaScriptファイルを一切触らずに
デザインを作り込むことができる。
754デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 11:40:36.85ID:jbQifWXg0 jQueryで書く場合はこんな感じだね。
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
コンポーネントの中にある名前がswitchのチェックボックスがONになれば
そのコンポーネントがactiveになって、
そのコンポーネント以下のデザインがactive用に変わる
DOMの構成がどうなっているか一切気にする必要がないんだよ。
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
コンポーネントの中にある名前がswitchのチェックボックスがONになれば
そのコンポーネントがactiveになって、
そのコンポーネント以下のデザインがactive用に変わる
DOMの構成がどうなっているか一切気にする必要がないんだよ。
755デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 13:46:44.51ID:/TYC9ex30 >>753
デザイナはスクリプトをいじる必要全くない。例えば
<div v-if=“isShow”></div>
というテンプレに対してスクリプトでは、
isShow=false
とするだけ。これだけでリアクティブになる。どっちがミスが少ないか分かるだろう?
デザイナはスクリプトをいじる必要全くない。例えば
<div v-if=“isShow”></div>
というテンプレに対してスクリプトでは、
isShow=false
とするだけ。これだけでリアクティブになる。どっちがミスが少ないか分かるだろう?
756デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 13:50:05.53ID:/TYC9ex30 すまん途切れた。どっちがミスが少ないか、分業しやすいか分かると思うんだが、どうかね?
757デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 13:55:12.54ID:jbQifWXg0 > <div v-if=“isShow”></div>
すいませーん、デザイナーさーん。
今度から、v-ifってのを覚えてくださいー。
いままでCSSで表示切り替えしてたでしょー?
それ、今度からやめてくださいねー。
リ・ア・ク・ト。やり方覚えてくださいね。
やり方変えたんですよ。こっちのやり方にね。
え?他にも色々ありますよ。勉強してくださいー。
すいませーん、デザイナーさーん。
今度から、v-ifってのを覚えてくださいー。
いままでCSSで表示切り替えしてたでしょー?
それ、今度からやめてくださいねー。
リ・ア・ク・ト。やり方覚えてくださいね。
やり方変えたんですよ。こっちのやり方にね。
え?他にも色々ありますよ。勉強してくださいー。
758デフォルトの名無しさん (ワッチョイ 126a-gi2a)
2019/03/08(金) 13:57:57.43ID:kMybevyH0 Javascript(Data/Model) - Javascript(UI/DOM) - HTML/CSS
デザイナーが真ん中の層を如何にやるのかという話だろう
HTML内にv-bindとか属性で埋め込むのもJQueryを書かせるのも同じこと
仮想DOMのフレームワークによって真ん中が無くなったとは言えないだろうし
デザイナーが真ん中の層を如何にやるのかという話だろう
HTML内にv-bindとか属性で埋め込むのもJQueryを書かせるのも同じこと
仮想DOMのフレームワークによって真ん中が無くなったとは言えないだろうし
759デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 14:02:22.95ID:jbQifWXg0 jQueryはプログラマが使って、
イベントに反応してクラスを変更するだけなんだよ。
あとはDOMの構造とかCSSとか完全にデザイナーに
任せることができる。
デザイナーはデザイナーの流儀でやれるし、
JavaScriptフレームワークの流儀を押し付けることもない
イベントに反応してクラスを変更するだけなんだよ。
あとはDOMの構造とかCSSとか完全にデザイナーに
任せることができる。
デザイナーはデザイナーの流儀でやれるし、
JavaScriptフレームワークの流儀を押し付けることもない
760デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 14:05:09.01ID:jbQifWXg0761デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 14:11:29.15ID:/TYC9ex30762デフォルトの名無しさん (ワッチョイ 126a-gi2a)
2019/03/08(金) 14:12:44.22ID:kMybevyH0 jQueryはすべてデザイナーがやるべき
ボタンをクリックしたらどのタグの色が変わるのか、それを知っているのはデザイナーだけで良い
ボタンをクリックしたらどのタグの色が変わるのか、それを知っているのはデザイナーだけで良い
763デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 14:20:09.62ID:jbQifWXg0 >>761
> いや随分コード減るぞ。当然ミスも減る。デザイナも楽になる。
jQueryの方が少ないですね。
嘘だと思うならこれ同じことを実際に動くのに必要な分、書いてみてください。
[JavaScript]
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
[HTML]
<div class="my-component">
<input type="checkbox" name="switch">switch
</div>
[CSS]
.my-component.active {
color: red;
}
jQuery版の実際に動くコードですよ。
https://jsfiddle.net/eu2wm3tk/
> いや随分コード減るぞ。当然ミスも減る。デザイナも楽になる。
jQueryの方が少ないですね。
嘘だと思うならこれ同じことを実際に動くのに必要な分、書いてみてください。
[JavaScript]
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
[HTML]
<div class="my-component">
<input type="checkbox" name="switch">switch
</div>
[CSS]
.my-component.active {
color: red;
}
jQuery版の実際に動くコードですよ。
https://jsfiddle.net/eu2wm3tk/
764デフォルトの名無しさん (オッペケ Src7-EzoF)
2019/03/08(金) 14:20:12.96ID:mjBCJk3zr ほらほらだからこうなるって何度も言っただろ
フロントはフルスタックじゃないとこの程度ですら揉めるんだよ
もう一度言うぞ
デザインできないフロントエンジニアはクソ
エンジニアリングできないフロントデザイナーはクソ
お前ら言い争ってる時点で無能だと自覚しろ
フロントはフルスタックじゃないとこの程度ですら揉めるんだよ
もう一度言うぞ
デザインできないフロントエンジニアはクソ
エンジニアリングできないフロントデザイナーはクソ
お前ら言い争ってる時点で無能だと自覚しろ
765デフォルトの名無しさん (ワッチョイ 126a-gi2a)
2019/03/08(金) 14:20:13.82ID:kMybevyH0 >>761
>いや随分コード減るぞ。当然ミスも減る。デザイナも楽になる。
そう、デザイン側のJSコードは減る。それはたしかだし、データ側JSとの繋ぎかたもはっきりとするね
欠点はHTML内に変なのをたくさん突っ込むのはいかがなものかってことかな
>いや随分コード減るぞ。当然ミスも減る。デザイナも楽になる。
そう、デザイン側のJSコードは減る。それはたしかだし、データ側JSとの繋ぎかたもはっきりとするね
欠点はHTML内に変なのをたくさん突っ込むのはいかがなものかってことかな
766デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 14:20:59.66ID:jbQifWXg0 >>762
> jQueryはすべてデザイナーがやるべき
JavaScriptのライブラリなのにデザイナーって意味不明w
ボタンを押したら、ここのタグにこういうクラスがつきます。
って伝えるだけで、あとはそれぞれ作業ができる。
これが分業っていうんだよ。
> jQueryはすべてデザイナーがやるべき
JavaScriptのライブラリなのにデザイナーって意味不明w
ボタンを押したら、ここのタグにこういうクラスがつきます。
って伝えるだけで、あとはそれぞれ作業ができる。
これが分業っていうんだよ。
767デフォルトの名無しさん (アウアウウー Sac3-4dCE)
2019/03/08(金) 14:28:57.63ID:B/j0V0h2a >>757
どっちかというとその場合デザイナーに必要なのはv-showじゃなくてisShowだから
どういうモードの時変数の設定値を何にすべきかという一覧表があればいいだけじゃね?
てかその辺のコード化はデザイナーじゃなくてフロントエンジニアの仕事だろ
どっちかというとその場合デザイナーに必要なのはv-showじゃなくてisShowだから
どういうモードの時変数の設定値を何にすべきかという一覧表があればいいだけじゃね?
てかその辺のコード化はデザイナーじゃなくてフロントエンジニアの仕事だろ
768デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 14:31:25.36ID:jbQifWXg0 > てかその辺のコード化はデザイナーじゃなくてフロントエンジニアの仕事だろ
フロントエンジニアがHTMLを書くから
分業できないってことなんですよ
フロントエンジニアがHTMLを書くから
分業できないってことなんですよ
769デフォルトの名無しさん (オッペケ Src7-EzoF)
2019/03/08(金) 14:33:21.35ID:mjBCJk3zr >>757
いや、お前がデザイン覚えろよwwww
いや、お前がデザイン覚えろよwwww
770デフォルトの名無しさん (ワッチョイ 126a-gi2a)
2019/03/08(金) 14:36:15.92ID:kMybevyH0771デフォルトの名無しさん (アウアウウー Sac3-4dCE)
2019/03/08(金) 14:54:21.66ID:B/j0V0h2a デザイナーはロジックレスな一枚ずつのhtmlと画像素材のcss作ってりゃそれでいいじゃん
772デフォルトの名無しさん (オッペケ Src7-EzoF)
2019/03/08(金) 14:58:33.92ID:kvsQt7Fnr UI・UXやインタラクションはエンジニアがやる分野
世界的にもその方向性になってきている
しかし世界中のエンジニアは無能だからまともにデザインできない
ごく簡単なUIすら理解できない
終わってんだろ
世界的にもその方向性になってきている
しかし世界中のエンジニアは無能だからまともにデザインできない
ごく簡単なUIすら理解できない
終わってんだろ
773デフォルトの名無しさん (アウアウウー Sac3-4dCE)
2019/03/08(金) 15:02:21.59ID:B/j0V0h2a 最低限のモダンっぽい見た目でいいならもうcssフレームワークのどれかでもいいだろ
774デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 15:07:22.44ID:jbQifWXg0775デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 15:08:44.58ID:jbQifWXg0 >>770
分業っていうのは、完全に相手のことを知らないで
できるわけじゃないんだよ。
必要最小限、クラス名だけ。
jQuery使って、HTMLとCSSを正しく使うだけで
最小限の連絡で、それぞれが開発できるんだよ。
分業っていうのは、完全に相手のことを知らないで
できるわけじゃないんだよ。
必要最小限、クラス名だけ。
jQuery使って、HTMLとCSSを正しく使うだけで
最小限の連絡で、それぞれが開発できるんだよ。
776デフォルトの名無しさん (ワッチョイ 1614-uGU8)
2019/03/08(金) 15:11:41.12ID:jbQifWXg0 >>771
> デザイナーはロジックレスな一枚ずつのhtmlと画像素材のcss作ってりゃそれでいいじゃん
コンポーネントには状態があるんだから、
少なくともその状態ごとのデザインは作ってもらわないと困る。
で、どうやるかというと、お互いで決めたルール
コンポーネントのここに、こういうクラスがつきますよー
というルールに基づいて
デザイナーは、HTMLのコンポーネントのタグに
classを変更するだけなんだよ。
最終的にはJavaScriptでクラスを変更することになるが
開発中は、手書きでクラスを変更するだけ
超簡単
> デザイナーはロジックレスな一枚ずつのhtmlと画像素材のcss作ってりゃそれでいいじゃん
コンポーネントには状態があるんだから、
少なくともその状態ごとのデザインは作ってもらわないと困る。
で、どうやるかというと、お互いで決めたルール
コンポーネントのここに、こういうクラスがつきますよー
というルールに基づいて
デザイナーは、HTMLのコンポーネントのタグに
classを変更するだけなんだよ。
最終的にはJavaScriptでクラスを変更することになるが
開発中は、手書きでクラスを変更するだけ
超簡単
777デフォルトの名無しさん (ワッチョイ 126a-gi2a)
2019/03/08(金) 15:13:04.69ID:kMybevyH0778デフォルトの名無しさん (アウアウウー Sac3-4dCE)
2019/03/08(金) 15:15:10.57ID:B/j0V0h2a デザイナーに求めるものなんて最低限なら画像データだっていい
html形式でブラウザで表示できるなら大助かり
期日が守れないヤツ多いから最低限期日までにどっちか出してくれればそれ以上に求める事なんてねぇんだが
html形式でブラウザで表示できるなら大助かり
期日が守れないヤツ多いから最低限期日までにどっちか出してくれればそれ以上に求める事なんてねぇんだが
779デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 16:28:21.11ID:/TYC9ex30 >>763
くわー面倒だなあ。でもコード見ないと分からんか。
[JavaScript]
isActive=false
[HTML]
<div class="my-component" class=“{active:isActive}”>
<input type="checkbox” v-model=“isActive”>switch
</div>
[css]
変更なし
どう?君のコードより随分少ないだろ。特にscriptなんて変数一個で終わり。まだ分からない事あるなら聞いてみなよ。でもスマホ手打ちなんで面倒なのはやめてw
くわー面倒だなあ。でもコード見ないと分からんか。
[JavaScript]
isActive=false
[HTML]
<div class="my-component" class=“{active:isActive}”>
<input type="checkbox” v-model=“isActive”>switch
</div>
[css]
変更なし
どう?君のコードより随分少ないだろ。特にscriptなんて変数一個で終わり。まだ分からない事あるなら聞いてみなよ。でもスマホ手打ちなんで面倒なのはやめてw
780デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 16:38:37.56ID:/TYC9ex30 おっとミスった。スマホ手打ちなんですまんね。
[HTML]
<div class="my-component" class=“{active:isActive}”>
正しくは
<div class="my-component" :class=“{active:isActive}”>
:が抜けてたよ。
[HTML]
<div class="my-component" class=“{active:isActive}”>
正しくは
<div class="my-component" :class=“{active:isActive}”>
:が抜けてたよ。
781デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 16:49:32.55ID:oNzvowiX0 >>779
あのさぁ、動かないコード書かないでくれないか?
scriptタグまでは書かなくていいよ。jQueryでも書いてないからさ、
でも動くコード書いてっていったよね?
せめてjsfiddleで動かしてから来てよ
あのさぁ、動かないコード書かないでくれないか?
scriptタグまでは書かなくていいよ。jQueryでも書いてないからさ、
でも動くコード書いてっていったよね?
せめてjsfiddleで動かしてから来てよ
782デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 16:54:12.44ID:oNzvowiX0 なんか動くって嘘つきそうだから
>>779では動かないという証拠として
>>779の内容を https://jsfiddle.net/b5xusp1d/ に書いておいたから
ほら動かないでしょ?
これを動くように修正してね。
jQuery版の実際に動くコードですよ。
https://jsfiddle.net/eu2wm3tk/
>>779では動かないという証拠として
>>779の内容を https://jsfiddle.net/b5xusp1d/ に書いておいたから
ほら動かないでしょ?
これを動くように修正してね。
jQuery版の実際に動くコードですよ。
https://jsfiddle.net/eu2wm3tk/
783デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 16:55:22.77ID:/TYC9ex30784デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 16:55:35.67ID:oNzvowiX0 ほんとなんですぐばれる嘘を作るんだろう?
理解できないな
理解できないな
785デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 16:56:30.27ID:oNzvowiX0786デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 16:58:49.01ID:oNzvowiX0787デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 17:01:09.95ID:/TYC9ex30 >>786
書き方間違えてるぞ。vue初期からしなきゃ動かんよw
書き方間違えてるぞ。vue初期からしなきゃ動かんよw
788デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 17:01:40.94ID:oNzvowiX0 あともう一つ教えといてあげるよ。
作ったのは.my-componentなんだ。コンポーネント。再利用可能。
つまりな、HTMLをこう書くだけで
同じ動きがするコンポーネント増やせるのよ。jQuery版は。
ここまでやってくれよ
<div class="my-component">
<input type="checkbox" name="switch">switch1
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch2
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch3
</div>
https://jsfiddle.net/zygq0r56/
作ったのは.my-componentなんだ。コンポーネント。再利用可能。
つまりな、HTMLをこう書くだけで
同じ動きがするコンポーネント増やせるのよ。jQuery版は。
ここまでやってくれよ
<div class="my-component">
<input type="checkbox" name="switch">switch1
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch2
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch3
</div>
https://jsfiddle.net/zygq0r56/
789デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 17:02:12.51ID:oNzvowiX0790デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 17:07:56.77ID:oNzvowiX0 vueは面倒だなーって思いながら、
vue初期からしなきゃ動かんよw
と指摘された点を
今書いてるのかな?w
vue初期からしなきゃ動かんよw
と指摘された点を
今書いてるのかな?w
791デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 17:08:24.75ID:/TYC9ex30 >>789
おいおい、vue知らないのに勝手にアップして動かないと言うのは無しだろ。知らないなら知らないと言えば教えてあげるのに。初期化方法までは面倒みれんぞ。jQueryだってそうだろ?
まあいいよ、後で動作する奴を上げてあげるよ。
おいおい、vue知らないのに勝手にアップして動かないと言うのは無しだろ。知らないなら知らないと言えば教えてあげるのに。初期化方法までは面倒みれんぞ。jQueryだってそうだろ?
まあいいよ、後で動作する奴を上げてあげるよ。
792デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 17:12:52.61ID:oNzvowiX0 > jQueryだってそうだろ
何言ってるんだ?
jsfiddleにはまさにこれだけのコードしか書いてないんだが?
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
いやまさかそんなこと、ありえるなんて思いもしなかった!
レベルなのか?w
何言ってるんだ?
jsfiddleにはまさにこれだけのコードしか書いてないんだが?
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
いやまさかそんなこと、ありえるなんて思いもしなかった!
レベルなのか?w
793デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 17:15:48.86ID:oNzvowiX0 ついでだからちょっと改造
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
は .my-component が 2回でてきてDRYじゃないんで
1回で書く方法
$('.my-component').on('change', '[name="switch"]', function(event) {
$(event.delegateTarget).toggleClass('active', this.checked);
});
https://jsfiddle.net/tk5yvs3g/
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
は .my-component が 2回でてきてDRYじゃないんで
1回で書く方法
$('.my-component').on('change', '[name="switch"]', function(event) {
$(event.delegateTarget).toggleClass('active', this.checked);
});
https://jsfiddle.net/tk5yvs3g/
794デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 17:19:36.99ID:oNzvowiX0 >>791
> まあいいよ、後で動作する奴を上げてあげるよ。
じゃあHTML側はこれ相当でお願いね。
コンポーネントは3つ。
<div class="my-component">
<input type="checkbox" name="switch">switch1
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch2
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch3
</div>
> まあいいよ、後で動作する奴を上げてあげるよ。
じゃあHTML側はこれ相当でお願いね。
コンポーネントは3つ。
<div class="my-component">
<input type="checkbox" name="switch">switch1
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch2
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch3
</div>
795デフォルトの名無しさん (ワッチョイ a701-chNm)
2019/03/08(金) 17:59:49.58ID:/TYC9ex30 >>794
ふう、やっとPCの前に戻ってきた。というわけでちょっと上げてみた。ブラウザから5ch書き込むの久しぶりだわw。
https://codepen.io/hinoragi/pen/YgVQjK
簡単にテンプレート化してコンポーネント化もしといた。何か分からないことあるなら遠慮なく質問してよ。ちょっと用事あるから次は10時ぐらいにスレみる予定。
ふう、やっとPCの前に戻ってきた。というわけでちょっと上げてみた。ブラウザから5ch書き込むの久しぶりだわw。
https://codepen.io/hinoragi/pen/YgVQjK
簡単にテンプレート化してコンポーネント化もしといた。何か分からないことあるなら遠慮なく質問してよ。ちょっと用事あるから次は10時ぐらいにスレみる予定。
796デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 18:05:40.88ID:oNzvowiX0 [jQuery]
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
[Vue]
Vue.component('my-component',{
template:`
<div class="my-component" :class="{active:isActive}">
<input type="checkbox" v-model="isActive">{{val}}
</div>
`,
data:function(){return{
isActive:false
}},
props:["val"]
})
new Vue({el: '#app'})
あ、デザイナーさん。HTMLはVueのコードに移動したんで
デザイン変えたきゃVueの方いじってくださいねwww
やっぱりこうなるw
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
[Vue]
Vue.component('my-component',{
template:`
<div class="my-component" :class="{active:isActive}">
<input type="checkbox" v-model="isActive">{{val}}
</div>
`,
data:function(){return{
isActive:false
}},
props:["val"]
})
new Vue({el: '#app'})
あ、デザイナーさん。HTMLはVueのコードに移動したんで
デザイン変えたきゃVueの方いじってくださいねwww
やっぱりこうなるw
797デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 18:07:11.66ID:oNzvowiX0 [jQuery] 3行
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
[Vue] 12行
Vue.component('my-component',{
template:`
<div class="my-component" :class="{active:isActive}">
<input type="checkbox" v-model="isActive">{{val}}
</div>
`,
data:function(){return{
isActive:false
}},
props:["val"]
})
new Vue({el: '#app'})
あ、デザイナーさん。HTMLはVueのコードに移動したんで
デザイン変えたきゃVueの方いじってくださいねwww
やっぱりこうなるw
行数は増え、分業ができなくなる
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
[Vue] 12行
Vue.component('my-component',{
template:`
<div class="my-component" :class="{active:isActive}">
<input type="checkbox" v-model="isActive">{{val}}
</div>
`,
data:function(){return{
isActive:false
}},
props:["val"]
})
new Vue({el: '#app'})
あ、デザイナーさん。HTMLはVueのコードに移動したんで
デザイン変えたきゃVueの方いじってくださいねwww
やっぱりこうなるw
行数は増え、分業ができなくなる
798デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 18:11:58.57ID:oNzvowiX0 VueはコンポーネントとDOM構造が密接に結びついているから、
以下みたいに、デザイン上の都合などで変えた時の柔軟性がなくなってしまうんだよな。
jQueryならあくまで、my-componentは、中のname=switchがONになったらクラスを変えるってだけで
中身は自由にいろんなものに変更できるというコンポーネントなのに
<div class="my-component">
<input type="checkbox" name="switch">switch1
<p>ここはswitch1です</p>
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch2
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch3
<img src="かっこいい画像.gif">
</div>
以下みたいに、デザイン上の都合などで変えた時の柔軟性がなくなってしまうんだよな。
jQueryならあくまで、my-componentは、中のname=switchがONになったらクラスを変えるってだけで
中身は自由にいろんなものに変更できるというコンポーネントなのに
<div class="my-component">
<input type="checkbox" name="switch">switch1
<p>ここはswitch1です</p>
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch2
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
<div class="my-component">
<input type="checkbox" name="switch">switch3
<img src="かっこいい画像.gif">
</div>
799デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 18:44:14.67ID:/TYC9ex30 >>797
気になって覗きに来たら案の定。。うーん、そこから先は話長くなるぞ。一番簡単なサンプルだし、5chでやる規模じゃない。
それより最初の話はどうした?vueの方が随分コード短いぞ。その質問に答える為にサンプル上げたんだが、答えるのが礼儀ってもんだぜ。
気になって覗きに来たら案の定。。うーん、そこから先は話長くなるぞ。一番簡単なサンプルだし、5chでやる規模じゃない。
それより最初の話はどうした?vueの方が随分コード短いぞ。その質問に答える為にサンプル上げたんだが、答えるのが礼儀ってもんだぜ。
800デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 18:49:38.83ID:oNzvowiX0 >>799
> 気になって覗きに来たら案の定。。うーん、そこから先は話長くなるぞ
jQueryと同じことをするのに、話が長くなるんだへーw
ま結論な。jQueryが3行の所、Vueだと12行になが〜くなりました。
テンプレートのところを除いたとしても7行。jQueryの倍
[jQuery] 3行
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
[Vue] 12行
Vue.component('my-component',{
template:`
<div class="my-component" :class="{active:isActive}">
<input type="checkbox" v-model="isActive">{{val}}
</div>
`,
data:function(){return{
isActive:false
}},
props:["val"]
})
new Vue({el: '#app'})
> 気になって覗きに来たら案の定。。うーん、そこから先は話長くなるぞ
jQueryと同じことをするのに、話が長くなるんだへーw
ま結論な。jQueryが3行の所、Vueだと12行になが〜くなりました。
テンプレートのところを除いたとしても7行。jQueryの倍
[jQuery] 3行
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
[Vue] 12行
Vue.component('my-component',{
template:`
<div class="my-component" :class="{active:isActive}">
<input type="checkbox" v-model="isActive">{{val}}
</div>
`,
data:function(){return{
isActive:false
}},
props:["val"]
})
new Vue({el: '#app'})
801デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 18:52:05.37ID:oNzvowiX0 それに一番ひどいのは、やっぱりmy-componentのdivの中身を
デザイナがいじろうとしたら、JavaScriptファイルを修正しなければ
ならなくなるってところなんだよね。
DOMとコードが密接に結びついちゃってる。
デザイナがいじろうとしたら、JavaScriptファイルを修正しなければ
ならなくなるってところなんだよね。
DOMとコードが密接に結びついちゃってる。
802デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 18:56:00.97ID:oNzvowiX0 jQueryの場合、JavaScriptのコードとDOMの構造は結ぶていてなくて
結びついているのは、.my-componentというクラス名と
input name=switchだけ。だからDOMの構造をどんなに変えても
クラス名とそういう名前のinputがあればいい
コードとDOMの構造が分離されている
結びついているのは、.my-componentというクラス名と
input name=switchだけ。だからDOMの構造をどんなに変えても
クラス名とそういう名前のinputがあればいい
コードとDOMの構造が分離されている
803デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 19:11:44.53ID:/TYC9ex30 >>801
やっぱり全く理解できてないじゃん。最初の話に戻すぞ。
最初の例ならスクリプトは、
new vue({data:{isActive:false}})
これだけ。君が分からなくて動かん!!とか騒いでた奴。君のその3行のスクリプトと比べてみなよ。
次に、まあ君はvue知らんからしょうがないがテンプレートは実務では当然外部に持つ。単一ファイルコンポーネントでググれ。
これで聞かれた事は答えたって事で俺からも質問していいか?
さっきからコンポーネントと言ってるが、君のはコンポーネントじゃないだろ。単なるコピペでカプセル化も局所化も無い。サンプルである事を割り引いてもコンポーネントと呼べる内容じゃない、と思うんだが、マジでどう思ってるの?
やっぱり全く理解できてないじゃん。最初の話に戻すぞ。
最初の例ならスクリプトは、
new vue({data:{isActive:false}})
これだけ。君が分からなくて動かん!!とか騒いでた奴。君のその3行のスクリプトと比べてみなよ。
次に、まあ君はvue知らんからしょうがないがテンプレートは実務では当然外部に持つ。単一ファイルコンポーネントでググれ。
これで聞かれた事は答えたって事で俺からも質問していいか?
さっきからコンポーネントと言ってるが、君のはコンポーネントじゃないだろ。単なるコピペでカプセル化も局所化も無い。サンプルである事を割り引いてもコンポーネントと呼べる内容じゃない、と思うんだが、マジでどう思ってるの?
804デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 19:14:42.43ID:oNzvowiX0 >>803
> new vue({data:{isActive:false}})
それだけだと、どれと結びついてるのか(=セレクタ)その情報がないだろ。
セレクタを省略して良いんだったら、jQueryだってこの一行だよ。
toggleClass('active', this.checked);
> new vue({data:{isActive:false}})
それだけだと、どれと結びついてるのか(=セレクタ)その情報がないだろ。
セレクタを省略して良いんだったら、jQueryだってこの一行だよ。
toggleClass('active', this.checked);
805デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 19:16:38.22ID:oNzvowiX0 いや、値を変えるコードすら無いかw
jQueryだとこれだなw Vueより断然短い
'active'
jQueryだとこれだなw Vueより断然短い
'active'
806デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 19:23:09.87ID:oNzvowiX0 > 最初の例ならスクリプトは、
> new vue({data:{isActive:false}})
> これだけ。
これだけで動く!(=動かない)
これなんて詐欺?w
> new vue({data:{isActive:false}})
> これだけ。
これだけで動く!(=動かない)
これなんて詐欺?w
807デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 19:25:20.00ID:/TYC9ex30 >>804
がーん、ここまで書いても分からんか。それ動作せんだろ。。自分で言った様に動作するコードで比較しようぜ!!
それと、俺は君を責めてる訳じゃなんだぜ。長年jQueryには世話になったから、優秀なライブラリだとよく知ってる。でもここはvue react angularスレだろ。jQueryはややすれ違いなんだよ。でもまあお互いの長所短所を比較しつつ、まったり雑談しようや。
がーん、ここまで書いても分からんか。それ動作せんだろ。。自分で言った様に動作するコードで比較しようぜ!!
それと、俺は君を責めてる訳じゃなんだぜ。長年jQueryには世話になったから、優秀なライブラリだとよく知ってる。でもここはvue react angularスレだろ。jQueryはややすれ違いなんだよ。でもまあお互いの長所短所を比較しつつ、まったり雑談しようや。
808デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/08(金) 19:26:43.19ID:/TYC9ex30 >>806
wwワザとか?vue本体ロードしなはれよ。
wwワザとか?vue本体ロードしなはれよ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【和訳付き】レーダー照射問題 中国軍と自衛隊との“音声データ”公開 中国国営メディア [♪♪♪★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 「中国側も日本機のレーダーを感知していた」 中国メディアが報道 [♪♪♪★]
- 中国とロシアの爆撃機、日本周辺で共同飛行 [少考さん★]
- 堀江貴文、キャッシュレス非対応の店にモヤッ 『PayPay』立ち上げの人物にまさかの直談判「現金決済しかできないんだけど…」 [冬月記者★]
- 高市早苗首相、消費税減税に後ろ向き 足かせはレジシステム? 「責任ある積極財政」期待高いが [蚤の市★]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★2 [597533159]
- 【悲惨】中国軍が自衛隊に「事前通告」し自衛隊も返答した音声が公開されてしまうwwwこれは高市チェックアウトゕ★3 [597533159]
- 【悲報】JA「全然米が売れなくて倉庫を圧迫してる。助けて!」米卸売り業者「安売りしたら赤字になる…助けて!」 [802034645]
- 俺が突拍子もないレスするとスクリプト扱いされるの不満なんだが
- 中国の日本向けレアアースの輸出止まる、高市のせいで日本終了のお知らせ [931948549]
- そういえば草だけ食ってるヤツらどこいったの?
