探検
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
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本体ロードしなはれよ。
809デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 19:29:20.37ID:oNzvowiX0810デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 19:30:11.51ID:oNzvowiX0811デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 19:30:33.50ID:oNzvowiX0 これだけって、どこまでがこれだけなんだ?
動作しないコードまでがこれだけか。
動作しないコードまでがこれだけか。
812デフォルトの名無しさん (ドコグロ MM97-w6xA)
2019/03/08(金) 19:35:01.38ID:YjtKBzOFM はあ、、分かった分かった。最初の例で動く奴上げてやるよ。出先でだから1時間後な。
で、その間に俺の質問にも答えてくれ。君のコードは再利用できないし、コンポーネントではない。どう再利用するつもりなの?そのむき出しのmy-conponentで。
で、その間に俺の質問にも答えてくれ。君のコードは再利用できないし、コンポーネントではない。どう再利用するつもりなの?そのむき出しのmy-conponentで。
813デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 19:37:01.18ID:oNzvowiX0 見ての通りjQueryだと、HTMLがJavaScriptに全く汚染されていない。
JavaScriptの臭いがないクリーンなHTMLなんだよ。だから分業ができる。
<div class="my-component">
<input type="checkbox" name="switch">switch1
</div>
Vue使ったら、HTMLが謎の汚染(HTML書いてる人には意味不明なもの)が発生し
1. :class="{active:isActive}"
2. v-model="isActive"
HTMLコードはJavaScriptファイルに移動してしまうし、
上のコードだけじゃ足りないから
data:function(){
return{
isActive:false
}
},
props:["val"]
というコードが追加で必要になるし。
もちろん .my-componentと結びつけるために
Vue.component('my-component',{
という一行が必要になるし、HTMLはmy-componentとかいうHTML書いてる人は知らないタグを使うように強制され
属性が名前になるんですよーとか、新たなルールを押し付けられることになってる。
JavaScriptの臭いがないクリーンなHTMLなんだよ。だから分業ができる。
<div class="my-component">
<input type="checkbox" name="switch">switch1
</div>
Vue使ったら、HTMLが謎の汚染(HTML書いてる人には意味不明なもの)が発生し
1. :class="{active:isActive}"
2. v-model="isActive"
HTMLコードはJavaScriptファイルに移動してしまうし、
上のコードだけじゃ足りないから
data:function(){
return{
isActive:false
}
},
props:["val"]
というコードが追加で必要になるし。
もちろん .my-componentと結びつけるために
Vue.component('my-component',{
という一行が必要になるし、HTMLはmy-componentとかいうHTML書いてる人は知らないタグを使うように強制され
属性が名前になるんですよーとか、新たなルールを押し付けられることになってる。
814デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 19:39:05.43ID:oNzvowiX0 >>812
> で、その間に俺の質問にも答えてくれ。君のコードは再利用できないし、コンポーネントではない。どう再利用するつもりなの?そのむき出しのmy-conponentで。
普通に再利用できてるんだが?
そもそもjQueryのコードは状態を保持していない。
わかるか?jQueryのコードには状態がない。
状態は、HTMLのタグに存在している。
だからHTMLのタグの分だけインスタンスが存在しているようなもので、
普通に再利用できる。
> で、その間に俺の質問にも答えてくれ。君のコードは再利用できないし、コンポーネントではない。どう再利用するつもりなの?そのむき出しのmy-conponentで。
普通に再利用できてるんだが?
そもそもjQueryのコードは状態を保持していない。
わかるか?jQueryのコードには状態がない。
状態は、HTMLのタグに存在している。
だからHTMLのタグの分だけインスタンスが存在しているようなもので、
普通に再利用できる。
815デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 19:43:49.07ID:oNzvowiX0 Vueの場合、コンポーネントが状態を持ってしまってる。
isActiveという変数のことな。
状態を持ったisActiveを共有することは出来ないから、
新た無いHTMLのタグを作らければいけなくなってしまっている。
そしてisActiveという事実上のローカル変数を参照するために、
JavaScript側でHTMLを書くしかなくなってしまっている
HTMLがガッツリJavaScriptと結びついてしまっているわけだ
isActiveという変数のことな。
状態を持ったisActiveを共有することは出来ないから、
新た無いHTMLのタグを作らければいけなくなってしまっている。
そしてisActiveという事実上のローカル変数を参照するために、
JavaScript側でHTMLを書くしかなくなってしまっている
HTMLがガッツリJavaScriptと結びついてしまっているわけだ
816デフォルトの名無しさん (ドコグロ MM97-w6xA)
2019/03/08(金) 20:00:52.98ID:YjtKBzOFM >>815
どこから突っ込めばいいんだ。。
> Vueの場合、コンポーネントが状態を持ってしまってる。
> isActiveという変数のことな。
コンポーネントは状態持つものだよ。いや認識の相違とかじゃなく普通に。そして隠蔽されるべきもの。
> 状態を持ったisActiveを共有することは出来ないから、
普通に参照できる。
> そしてisActiveという事実上のローカル変数を参照するために、
> JavaScript側でHTMLを書くしかなくなってしまっている
単一ファイルコンポーネント。
> HTMLがガッツリJavaScriptと結びついてしまっているわけだ
まさかと思うがサンプルのtemplate見て言ってる?結びつくの真意が分からんがjQueryも結びついてるだろ。
どこから突っ込めばいいんだ。。
> Vueの場合、コンポーネントが状態を持ってしまってる。
> isActiveという変数のことな。
コンポーネントは状態持つものだよ。いや認識の相違とかじゃなく普通に。そして隠蔽されるべきもの。
> 状態を持ったisActiveを共有することは出来ないから、
普通に参照できる。
> そしてisActiveという事実上のローカル変数を参照するために、
> JavaScript側でHTMLを書くしかなくなってしまっている
単一ファイルコンポーネント。
> HTMLがガッツリJavaScriptと結びついてしまっているわけだ
まさかと思うがサンプルのtemplate見て言ってる?結びつくの真意が分からんがjQueryも結びついてるだろ。
817デフォルトの名無しさん (ドコグロ MM97-w6xA)
2019/03/08(金) 20:09:37.29ID:YjtKBzOFM いいよ、もう少し分かりやすい質問しよう。
コンポーネントの要素として、簡単に テンプレート、css、jsがあるとしよう。3つ合わせてコンポーネントね。これらは外部から容易に参照できてはいけないし、干渉されてはいけない、複製も容易でないとダメ。
君のやり方で、my-componentをどうコンポーネント化するのか例示して欲しい。
コンポーネントの要素として、簡単に テンプレート、css、jsがあるとしよう。3つ合わせてコンポーネントね。これらは外部から容易に参照できてはいけないし、干渉されてはいけない、複製も容易でないとダメ。
君のやり方で、my-componentをどうコンポーネント化するのか例示して欲しい。
818デフォルトの名無しさん (アウアウエー Saaa-2Y9w)
2019/03/08(金) 20:19:23.19ID:QXTI5KI7a わかった
Delphi使え
Delphi使え
819デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 20:35:47.91ID:oNzvowiX0820デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 20:36:44.19ID:oNzvowiX0 >>816
> まさかと思うがサンプルのtemplate見て言ってる?結びつくの真意が分からんがjQueryも結びついてるだろ。
jQueryでは結びつかない。
<div class="my-component">
<input type="checkbox" name="switch">switch1
</div>
↑どこにjQuery関連のものがあるか言ってみな
> まさかと思うがサンプルのtemplate見て言ってる?結びつくの真意が分からんがjQueryも結びついてるだろ。
jQueryでは結びつかない。
<div class="my-component">
<input type="checkbox" name="switch">switch1
</div>
↑どこにjQuery関連のものがあるか言ってみな
821デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 20:43:00.51ID:oNzvowiX0 > Vueの場合、コンポーネントが状態を持ってしまってる。
> isActiveという変数のことな。
訂正
Vueの場合、JavaScriptのコードが状態を持ってしまってる。
isActiveという変数のことな。
だからDOMとJavaScriptのインスタンスを一対一で
紐付けなければならなくなってる。密接に結びついている。
jQueryの場合JavaScriptのコードでは状態を持たないから、
DOMが一つだろうと複数だろうが、処理を共有化できる。
> isActiveという変数のことな。
訂正
Vueの場合、JavaScriptのコードが状態を持ってしまってる。
isActiveという変数のことな。
だからDOMとJavaScriptのインスタンスを一対一で
紐付けなければならなくなってる。密接に結びついている。
jQueryの場合JavaScriptのコードでは状態を持たないから、
DOMが一つだろうと複数だろうが、処理を共有化できる。
822デフォルトの名無しさん (オッペケ Src7-EzoF)
2019/03/08(金) 21:16:27.20ID:kvsQt7Fnr デザインやUI・UX、インタラクションが実装できないクソエンジニアどもがギャーギャー騒いでる
お前ら自分の無能さを披露して恥ずかしくねえの?
フロントやるならデザイン込みでUIくらいやれや
クソみたいなUI作ってんじゃねえよ
お前ら自分の無能さを披露して恥ずかしくねえの?
フロントやるならデザイン込みでUIくらいやれや
クソみたいなUI作ってんじゃねえよ
823デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 21:19:25.25ID:oNzvowiX0 餅は餅屋
824デフォルトの名無しさん (ワッチョイ a701-chNm)
2019/03/08(金) 21:31:02.59ID:/TYC9ex30 ただいまー。という訳で最初の質問の答えアップだよ。
https://codepen.io/hinoragi/pen/jJmzJG
なんの質問か忘れてるだろうから、君の763の質問引用するよ。
>jQueryの方が少ないですね。
>嘘だと思うならこれ同じことを実際に動くのに必要な分、書いてみてください。
>$('.my-component [name="switch"]').change(function() {
> $(this).closest('.my-component').toggleClass('active', this.checked);
>});
http://jsfiddle.net/tk5yvs3g/
で答えがこれね。
new Vue({
el: '#app',
data: {isActive:false},
})
どう?まあこんな短いサンプルで比較するのもどうやねんってのは分かるけど質問にはちゃんと答えたよ。
html含めても確実にvueの方が少ないよね。
あと少しはvueやreact勉強しようよ。こんな短いサンプルの初期化方法すら知らなかった訳で、知らないからって全力否定するのはどうなのって思うぞ。
https://codepen.io/hinoragi/pen/jJmzJG
なんの質問か忘れてるだろうから、君の763の質問引用するよ。
>jQueryの方が少ないですね。
>嘘だと思うならこれ同じことを実際に動くのに必要な分、書いてみてください。
>$('.my-component [name="switch"]').change(function() {
> $(this).closest('.my-component').toggleClass('active', this.checked);
>});
http://jsfiddle.net/tk5yvs3g/
で答えがこれね。
new Vue({
el: '#app',
data: {isActive:false},
})
どう?まあこんな短いサンプルで比較するのもどうやねんってのは分かるけど質問にはちゃんと答えたよ。
html含めても確実にvueの方が少ないよね。
あと少しはvueやreact勉強しようよ。こんな短いサンプルの初期化方法すら知らなかった訳で、知らないからって全力否定するのはどうなのって思うぞ。
825デフォルトの名無しさん (オッペケ Src7-EzoF)
2019/03/08(金) 21:36:39.46ID:kvsQt7Fnr デザインできてUIUXできるようになれば引く手数多だぞ
ほんとフルスタックはほとんどいないから
年収は最低でも1000万はいく
ほんとフルスタックはほとんどいないから
年収は最低でも1000万はいく
826デフォルトの名無しさん (ワッチョイ dff2-uGU8)
2019/03/08(金) 21:40:42.36ID:NeLzfZqe0 静的なWebページがあってそこにちょっと動きを付ける程度ならjQueryがお手軽。まぁそうだな。
827デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/08(金) 22:04:03.93ID:oNzvowiX0828デフォルトの名無しさん (ブーイモ MM32-4xo3)
2019/03/08(金) 22:19:01.08ID:JZ/onRPtM 行数連呼しといてそりゃねえだろ
829デフォルトの名無しさん (アウアウウー Sac3-4dCE)
2019/03/08(金) 22:29:51.19ID:i92SBzwIa やっとReduxがちゃんと分かってきた
けどActionって関数にする必要ってなんのためなの?
constの定数でもいいような気もするんだけど
けどActionって関数にする必要ってなんのためなの?
constの定数でもいいような気もするんだけど
830デフォルトの名無しさん (ワッチョイ 1fd2-+5m7)
2019/03/08(金) 23:22:07.35ID:8MLFoUZt0 まさか知らないで叩いてたとはなぁ
831デフォルトの名無しさん (ワッチョイ 126a-gi2a)
2019/03/09(土) 00:19:50.47ID:/m10ZyJL0 UIUXが複雑化すればデザインと密接になり、デザインがやるべきことになる
昔ながらのショッピングカートならそうでもないかもしれんがw
昔ながらのショッピングカートならそうでもないかもしれんがw
832デフォルトの名無しさん (ワッチョイ a701-w6xA)
2019/03/09(土) 00:31:16.43ID:e9DsS9n/0 >>827
> my-componentの外に、置いたinputでも動くし、
> my-componentを複数置いたら、おかしくなるし、
> お前馬鹿なの? 少しは書く前に頭使ったら?
君は本当成長ないね。過ちは認めようよ。俺は君の質問に的確に答えたよ。同じ動作をするより短いサンプルだろ。その返しがこれって、そんなに負けが認められんか。だから駄目なんだよなあ。。
あと批判するなら少しはvueやreact勉強してから述べような。俺もまさかど素人が批判してるとは思わなかった。当然ある程度は知ってて、それ故に批判すると思うじゃん常識的に考えてさ。そこはすまん。思い至らなかった。次からはスルーするよ。おやすみぃ。
> my-componentの外に、置いたinputでも動くし、
> my-componentを複数置いたら、おかしくなるし、
> お前馬鹿なの? 少しは書く前に頭使ったら?
君は本当成長ないね。過ちは認めようよ。俺は君の質問に的確に答えたよ。同じ動作をするより短いサンプルだろ。その返しがこれって、そんなに負けが認められんか。だから駄目なんだよなあ。。
あと批判するなら少しはvueやreact勉強してから述べような。俺もまさかど素人が批判してるとは思わなかった。当然ある程度は知ってて、それ故に批判すると思うじゃん常識的に考えてさ。そこはすまん。思い至らなかった。次からはスルーするよ。おやすみぃ。
833デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/09(土) 00:48:24.43ID:RYW8IiyE0 同じ動作してないよね。
my-componentの外に、置いたinputでも動くし、
my-componentを複数置いたら、おかしくなるし、
お前馬鹿なの? 少しは書く前に頭使ったら?
そんなにjQueryよりもVueの方が長くなることが許せないの?
事実を受け入れようよw
my-componentの外に、置いたinputでも動くし、
my-componentを複数置いたら、おかしくなるし、
お前馬鹿なの? 少しは書く前に頭使ったら?
そんなにjQueryよりもVueの方が長くなることが許せないの?
事実を受け入れようよw
834デフォルトの名無しさん (ワッチョイ 9732-4xo3)
2019/03/09(土) 00:53:19.31ID:zxiwPMOw0 なんでjQueryの動作を真似ることが前提なんだよ
言ってることめちゃくちゃじゃん
言ってることめちゃくちゃじゃん
835デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/09(土) 00:58:02.98ID:RYW8IiyE0 > なんでjQueryの動作を真似ることが前提なんだよ
お前言ってることがおかしい。
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
これと同じことを実現するという話で、
これというのは、.my-component(クラスなのだから当然)中の [name="switch"]'からの
イベントで.my-component に active クラスをつけるというものなんだから、
最低限の条件を満たしてない
お前言ってることがおかしい。
$('.my-component [name="switch"]').change(function() {
$(this).closest('.my-component').toggleClass('active', this.checked);
});
これと同じことを実現するという話で、
これというのは、.my-component(クラスなのだから当然)中の [name="switch"]'からの
イベントで.my-component に active クラスをつけるというものなんだから、
最低限の条件を満たしてない
836デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/09(土) 00:58:26.63ID:RYW8IiyE0 訂正
これというのは、.my-component(クラスなのだから当然複数ある)中の [name="switch"]'からの
これというのは、.my-component(クラスなのだから当然複数ある)中の [name="switch"]'からの
837デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/09(土) 01:00:24.50ID:RYW8IiyE0 .my-component(クラスなのだから当然)中の [name="switch"]'からの
イベントで.my-component に active クラスをつける
というお題で、複数対応していなければ突っ込まれるのは当たり前だし
お題を満たせば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'})
イベントで.my-component に active クラスをつける
というお題で、複数対応していなければ突っ込まれるのは当たり前だし
お題を満たせば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'})
838デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/09(土) 01:02:17.14ID:RYW8IiyE0 しかもこれ
<div class="my-component" :class="{active:isActive}">
<input type="checkbox" v-model="isActive">{{val}}
</div>
という固定のDOM構造にしか使えないので
jQueryよりも劣っている
jQueryだとHTML(DOM構造)を自由に変更できる。
以下のどのように変更しようとも、JavaScriptのコードは変更の必要はない
<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>
<div class="my-component" :class="{active:isActive}">
<input type="checkbox" v-model="isActive">{{val}}
</div>
という固定のDOM構造にしか使えないので
jQueryよりも劣っている
jQueryだとHTML(DOM構造)を自由に変更できる。
以下のどのように変更しようとも、JavaScriptのコードは変更の必要はない
<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>
839デフォルトの名無しさん (ワッチョイ 1202-LbCk)
2019/03/09(土) 01:02:49.95ID:N2GlqC3/0 こんなところにクソコードベタ貼りしてないでCodesandboxで動くソースでも書いてからリンク貼れよ
840デフォルトの名無しさん (ワッチョイ 1f14-uGU8)
2019/03/09(土) 01:04:30.20ID:RYW8IiyE0841デフォルトの名無しさん (ワッチョイ 9732-4xo3)
2019/03/09(土) 01:11:28.76ID:zxiwPMOw0 はっきり言うけどさ
中のinputまで丸ごとコピペしないと動かないコンポーネントとかコンポーネントじゃねえよ
jQueryならDOM構造は気にしなくて良かったんじゃないのか
中のinputまで丸ごとコピペしないと動かないコンポーネントとかコンポーネントじゃねえよ
jQueryならDOM構造は気にしなくて良かったんじゃないのか
842デフォルトの名無しさん (ドコグロ MM97-w6xA)
2019/03/09(土) 01:36:21.59ID:ovl4dn3WM 最後にまとめて答えとくよ。
>>819
> 何が言いたいのかわからん。
> CSSで div { color: red } って書いても
> 影響を受けないようになんて、Vueでもできないだろ
できる。scopedでググるか、詳しくはvueの公式見よう。
>>820
> jQueryでは結びつかない。
> <div class="my-component">
> <input type="checkbox" name="switch">switch1
> </div>
> ↑どこにjQuery関連のものがあるか言ってみな
そこは結びつかなきゃ困るんだよ。リアクティブなんだから。いちいちon changeイベントの記述なんぞしたくないもの。ねえ、このサンプルで言えばさ、nameがv-modelになるだけだよ?何がそんな嫌なのさ?
>>819
> 何が言いたいのかわからん。
> CSSで div { color: red } って書いても
> 影響を受けないようになんて、Vueでもできないだろ
できる。scopedでググるか、詳しくはvueの公式見よう。
>>820
> jQueryでは結びつかない。
> <div class="my-component">
> <input type="checkbox" name="switch">switch1
> </div>
> ↑どこにjQuery関連のものがあるか言ってみな
そこは結びつかなきゃ困るんだよ。リアクティブなんだから。いちいちon changeイベントの記述なんぞしたくないもの。ねえ、このサンプルで言えばさ、nameがv-modelになるだけだよ?何がそんな嫌なのさ?
843デフォルトの名無しさん (アメ MMdb-cVal)
2019/03/09(土) 02:04:13.30ID:MQBXPAS0M jQueryの人頑張ってるみたいだけど
jQ
jQ
844デフォルトの名無しさん (ドコグロ MM97-w6xA)
2019/03/09(土) 02:07:07.23ID:ovl4dn3WM >>838
> という固定のDOM構造にしか使えないので
> jQueryよりも劣っている
これが大いなる勘違いなんだがもう説明しない。いいから学べ。
> jQueryだとHTML(DOM構造)を自由に変更できる。
> 以下のどのように変更しようとも、JavaScriptのコードは変更の必要はない
これアンチパターンで混乱の元。カプセル化できないコンポーネントなんぞ不安で使えたもんじゃない。セレクタの影響範囲が広すぎて便利なつもりになってるだけ。将来的なデスマーチが約束された最も最悪な例だと気いて欲しい。
> という固定のDOM構造にしか使えないので
> jQueryよりも劣っている
これが大いなる勘違いなんだがもう説明しない。いいから学べ。
> jQueryだとHTML(DOM構造)を自由に変更できる。
> 以下のどのように変更しようとも、JavaScriptのコードは変更の必要はない
これアンチパターンで混乱の元。カプセル化できないコンポーネントなんぞ不安で使えたもんじゃない。セレクタの影響範囲が広すぎて便利なつもりになってるだけ。将来的なデスマーチが約束された最も最悪な例だと気いて欲しい。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 空自機レーダー照射、音声データ公開 中国 ★3 [蚤の市★]
- 日銀「歴史的」利上げ迫る 35年ぶりの年間上げ幅、0.5%の壁を突破 [蚤の市★] [蚤の市★]
- 【YouTuber】バイク事故で入院のゆたぼん、振込で「お見舞金」募る [muffin★]
- 【無職の男(31)】女子小学生に次々触る 下半身を露出した状態で 公然わいせつ、不同意わいせつ疑い 千葉県警 [nita★]
- 低所得層のマクドナルド離れが深刻に 広がる「ファストフード格差」の真相 米国 [少考さん★]
- 津波警報の発表中にグーグル検索、AIが「すべて解除」と誤情報 [蚤の市★]
- 【実況】博衣こよりのえちえち朝活🧪
- VIPでパズドラ
- 最寄りのラブホの店名を晒すスレ
- 朝からハイエースでカップラーメン食べてるドカタ
- 中国がここまで過敏になるのは日本に前科があるから。盧溝橋、満州事変。ジャップの先制攻撃は挙げればキリがないけど [472617201]
- 冬季賞与報告スレ [577451214]
