- 1 名前:デフォルトの名無しさん mailto:sage [2018/12/21(金) 21:37:36.86 ID:NZqrEm960.net]
-
実際どうなん? Vue https://jp.vuejs.org/ React https://reactjs.org/ Angular https://angular.io/ VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
- 855 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:19:50.47 ID:/m10ZyJL0.net]
- UIUXが複雑化すればデザインと密接になり、デザインがやるべきことになる
昔ながらのショッピングカートならそうでもないかもしれんがw
- 856 名前:デフォルトの名無しさん [2019/03/09(土) 00:31:16.43 ID:e9DsS9n/0.net]
- >>827
> my-componentの外に、置いたinputでも動くし、 > my-componentを複数置いたら、おかしくなるし、 > お前馬鹿なの? 少しは書く前に頭使ったら? 君は本当成長ないね。過ちは認めようよ。俺は君の質問に的確に答えたよ。同じ動作をするより短いサンプルだろ。その返しがこれって、そんなに負けが認められんか。だから駄目なんだよなあ。。 あと批判するなら少しはvueやreact勉強してから述べような。俺もまさかど素人が批判してるとは思わなかった。当然ある程度は知ってて、それ故に批判すると思うじゃん常識的に考えてさ。そこはすまん。思い至らなかった。次からはスルーするよ。おやすみぃ。
- 857 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:48:24.43 ID:RYW8IiyE0.net]
- 同じ動作してないよね。
my-componentの外に、置いたinputでも動くし、 my-componentを複数置いたら、おかしくなるし、 お前馬鹿なの? 少しは書く前に頭使ったら? そんなにjQueryよりもVueの方が長くなることが許せないの? 事実を受け入れようよw
- 858 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:53:19.31 ID:zxiwPMOw0.net]
- なんでjQueryの動作を真似ることが前提なんだよ
言ってることめちゃくちゃじゃん
- 859 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:58:02.98 ID:RYW8IiyE0.net]
- > なんでjQueryの動作を真似ることが前提なんだよ
お前言ってることがおかしい。 $('.my-component [name="switch"]').change(function() { $(this).closest('.my-component').toggleClass('active', this.checked); }); これと同じことを実現するという話で、 これというのは、.my-component(クラスなのだから当然)中の [name="switch"]'からの イベントで.my-component に active クラスを
- 860 名前:つけるというものなんだから、
最低限の条件を満たしてない [] - [ここ壊れてます]
- 861 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 00:58:26.63 ID:RYW8IiyE0.net]
- 訂正
これというのは、.my-component(クラスなのだから当然複数ある)中の [name="switch"]'からの
- 862 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:00:24.50 ID:RYW8IiyE0.net]
- .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'})
- 863 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:02:17.14 ID:RYW8IiyE0.net]
- しかもこれ
<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>
- 864 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:02:49.95 ID:N2GlqC3/0.net]
- こんなところにクソコードベタ貼りしてないでCodesandboxで動くソースでも書いてからリンク貼れよ
- 865 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:04:30.20 ID:RYW8IiyE0.net]
- >>838の実際に動くコードはこちら
jsfiddle.net/rhp9dvya/ これと同じことをVueで実現するコードは 更に長くなる
- 866 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 01:11:28.76 ID:zxiwPMOw0.net]
- はっきり言うけどさ
中のinputまで丸ごとコピペしないと動かないコンポーネントとかコンポーネントじゃねえよ jQueryならDOM構造は気にしなくて良かったんじゃないのか
- 867 名前:デフォルトの名無しさん [2019/03/09(土) 01:36:21.59 ID:ovl4dn3WM.net]
- 最後にまとめて答えとくよ。
>>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になるだけだよ?何がそんな嫌なのさ?
- 868 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:04:13.30 ID:MQBXPAS0M.net]
- jQueryの人頑張ってるみたいだけど
jQ
- 869 名前:デフォルトの名無しさん [2019/03/09(土) 02:07:07.23 ID:ovl4dn3WM.net]
- >>838
> という固定のDOM構造にしか使えないので > jQueryよりも劣っている これが大いなる勘違いなんだがもう説明しない。いいから学べ。 > jQueryだとHTML(DOM構造)を自由に変更できる。 > 以下のどのように変更しようとも、JavaScriptのコードは変更の必要はない これアンチパターンで混乱の元。カプセル化できないコンポーネントなんぞ不安で使えたもんじゃない。セレクタの影響範囲が広すぎて便利なつもりになってるだけ。将来的なデスマーチが約束された最も最悪な例だと気いて欲しい。
- 870 名前:デフォルトの名無しさん [2019/03/09(土) 02:21:00.49 ID:ovl4dn3WM.net]
- あとさ、いいからjQuery君はスレタイ読もうついでに空気もね。
ココはvue react angularスレだよ。公式のサンプル一つも試した事ないのバレてるのよ??なのにどうやって比較してるの?妄想じゃんそれ。 両方のコード見せて具体的に証明してよ。君の言うjQueryの優位性をさ。そしたら俺もキチンと答えるよ。間違ってたら謝るし。俺もjQueryは散々世話になったから嫌いじゃないのよ?
- 871 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 02:50:20.05 ID:Tm/Y9JxW0.net]
- ただ単に覚えたくないんだよ
新しい言語を jQueryは
- 872 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 03:10:54.41 ID:n56g/PGg0.net]
- 女子更衣室に堂々とチン入してきて延々巨根自慢をする粗チンバカ
- 873 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:00:21.97 ID:RYW8IiyE0.net]
- >>842
> できる。scopedでググるか、詳しくはvueの公式見よう。 scopedは、コンポーネントだけで使えるCSSであって 外部からの影響を受けないようにするものじゃないよ 素人かよw > そこは結びつかなきゃ困るんだよ。リアクティブなんだから。 理由は?w
- 874 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:01:33.11 ID:RYW8IiyE0.net]
- >>845
> 両方のコード見せて具体的に証明してよ。君の言うjQueryの優位性をさ。 jQueryの動くコード jsfiddle.net/rhp9dvya/ Vueの動くコードはでてない。 my-componentの外に、置いたinputでも動くし、 my-componentを複数置いたら、おかしくなる というクソコードしか出てない
- 875 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:05:56.25 ID:RYW8IiyE0.net]
- リアクティブなんだから!(自分で言っていて意味わかっていない)
↑ぷぎゃーw
- 876 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:06:59.38 ID:RYW8IiyE0.net]
- > nameがv-modelになるだけだよ?何がそんな嫌なのさ?
デザイナーの世界にないVue(JavaScript)専用の概念を 持ち込むことだね。
- 877 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:17:14
]
- [ここ壊れてます]
- 878 名前:.04 ID:zxiwPMOw0.net mailto: だからおかしくて当然なんだって
勝手にコンポーネントと名乗ってるだけでそれコンポーネントじゃないから ただのjQuery特有の動作だから [] - [ここ壊れてます]
- 879 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:18:18.22 ID:RYW8IiyE0.net]
- Vueのコンポーネントだけが
正しいコンポーネントだとか 恥ずかしいよ?
- 880 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:22:27.20 ID:zxiwPMOw0.net]
- でもあなたはjQueryの正しいコンポーネントが再現出来ないからクソコードって言うんでしょ
恥ずかしくないの?
- 881 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:26:00.83 ID:RYW8IiyE0.net]
- jQueryの場合というか、コンポーネントというのは別にjQueryの用語ではなく
単にHTML(DOM)の構造によって形作られたものに過ぎない。 専門用語ではなく、単なる英語としてのコンポーネント この場合のmy-componentというのは、my-componentというクラス名から始まり 内部にname="switch"があるというコンポーネント my-componentの条件はこれだけだから、DOMの構造はHTMLを修正するだけで柔軟に変更できる。 デザイナはこの条件を守っている限りHTML(CSS)を変更し自由にデザインできるし、 プログラマもデザインが変わってもJavaScriptコードを変更する必要がなくなる。 デザイナの担当とプログラマの担当、つまり修正するファイルが明確に分かれているのも良い どちらも自分の担当するファイルを自由に変更できるから分業することも容易になっている
- 882 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:29:39.24 ID:RYW8IiyE0.net]
- >>854
いや、常識的な仕様を守ってないからクソコードって言ってるんだよw new Vue({ el: '#app', data: {isActive:false}, }) これだけでできると言ったくせに <div id="app"> <div class="my-component" :class="{active:isActive}"> <input type="checkbox" v-model="isActive">abc </div> <input type="checkbox" v-model="isActive">abc ←ここを押しても反応する <div class="my-component" :class="{active:isActive}"> <input type="checkbox" v-model="isActive">abc ←ここを押したら全部反応する </div> </div> はい、Vue側のコード。これだけって言ったんだから、これだけでやってみせろやw https://codepen.io/anon/pen/BbZNVM
- 883 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 07:45:09.02 ID:RYW8IiyE0.net]
- ここで(HTML側を自由変更できないとはいえ)複数置いても問題ないコードを
書いてるから常識的な仕様ぐらい理解してると思うんだよねw https://codepen.io/hinoragi/pen/YgVQjK でもそれだとVueの方がjQueryよりも大幅に長くなっちゃったから これだけでできる!(←まともに動かない) と騙そうとしたんだろうね。 でもバレちゃったw
- 884 名前:デフォルトの名無しさん [2019/03/09(土) 08:07:35.93 ID:e9DsS9n/0.net]
- >>848
アホはお前だろう。。もう少しよく読んで意図把握しよう。 あとやっぱり君はリアクティブ自体理解できてないのがよくわかる。だからもう少し公式読め。
- 885 名前:デフォルトの名無しさん [2019/03/09(土) 08:10:00.82 ID:e9DsS9n/0.net]
- >>849
ほら 自分が書けないからそうやって逃げる。全く進歩しない。分からない事は否定するだけ。いいから自分で勉強証明しなって。見ててやるからさ。
- 886 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 08:10:39.68 ID:zxiwPMOw0.net]
- 提示された例がコンポーネントじゃないから当然なんだって
inputが中に2つあっても動いちゃうし無かったら役立たずのmy-componentが残るだけ 綺麗にコピペしないと動かないなんて常識的なコンポーネントの仕様を守ってないよね
- 887 名前:デフォルトの名無しさん [2019/03/09(土) 08:16:51.61 ID:e9DsS9n/0.net]
- >>857
なあ自分で言ってて悲しくならない? new Vueすら知らない事バレてるんよ君w。俺はもう説明しない。基本すら自学できない奴に教える価値無い。
- 888 名前:デフォルトの名無しさん [2019/03/09(土) 08:24:01.30 ID:e9DsS9n/0.net]
- >>855
> jQueryの場合というか、コンポーネントというのは別にjQueryの用語ではなく > 単にHTML(DOM)の構造によって形作られたものに過ぎない。 > 専門用語ではなく、単なる英語としてのコンポーネント 無知極まってるぞ。勝手に定義するな。マジで少し勉強して。そんな俺様定義だからあんな再利用できない紛いモノ書くんだよ。
- 889 名前:デフォルトの名無しさん [2019/03/09(土) 08:28:42.54 ID:e9DsS9n/0.net]
- だああ、色々言いたいが出社だ。
いいかiQuery君。君はまずスレチだ。そこをまず理解しろ。 その上で書くならせめてjQueryとvue react angularのどれか、2つのコードを比較しながらjQueryの良さを語れ。 それがここに書き込む最低の礼儀じゃね?
- 890 名前:デフォルトの名無しさん [2019/03/09(土) 08:37:47.27 ID:e9DsS9n/0.net]
- 最後にもう一回言うぞ。
jQueryのコード置くだけで「だからvueだめなんだよ」コレ止めろ。 基礎だけでもVueを勉強してから発言するのが筋だぜ。でないと話が通じないから困るんだよ。ほらココvueのスレでもあるし。
- 891 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:14:15.58 ID:N2GlqC3/0.net]
- >>849
かっこいい画像.gifくらいちゃんと用意しろよ
- 892 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:18:13.96 ID:izNw5U5za.net]
- >>851
デザイナーは巣のhtmlだけ書いてくれりゃいいよ 実環境にコードをマージする作業はこっちでやるし
- 893 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:19:00.94 ID:zJdX2n9h0.net]
- これは素晴らしい煽り合いだな
お互いコードでやりあうとか 勉強になります
- 894 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:20:39.95 ID:b+N//s300.net]
- 多分、「jQueryで十分」って主張してる人は、結局SPAの概念が習得出来なかった、あるいはする気のない人じゃない?
最新のフロントエンド開発について行けないから、新しい物の価値を否定して、 自分の相対価値が下がって行くのを阻止したいんじゃないかと。 今後SPAがどうなるかなんて分からないけど、少なくとも新しい事に挑戦もせず、勉強もせず、 自分が理解出来る古い技術にばかりすがるのは、正直エンジニアとしては失格だと思うよ。 そういった人が今すべき事は、不真面目な自分を戒めて勉強に励むか、 あるいはエンジニアとしての死を素直に受け入れて、別の道を模索するかのどっちかにしたらいいんじゃないかと。
- 895 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:22:15.82 ID:ezqy2TGU0.net]
- スレチだし
ライブラリとフレームワークを比較する具合が香ばしさ
- 896 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:23:51.52 ID:N2GlqC3/0.net]
- >>856
独立タグはちゃんと閉じろよ性格の雑さが出てるぞ <input />
- 897 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 09:29:59.29 ID:OAlfgW/Ia.net]
- jQueryはデザインの物理的な構造にプログラムが強く依存してしまうから生産性が低い
プログラムがデザインの物理的な構造に依存することを知ってるからデザインも安易に作れない(プログラムから扱えるようにするために物理的な制約が生まれる) VueはVMを使ってロジックとデザインを明確に分離してるのでそういった不都合はかなり軽減される 全くないとは言わないがね
- 898 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 10:53:00.46 ID:RYW8IiyE0.net]
- >>870
それが必要なのはXHTML。HTML5では、/>は許容されるが タグを閉じるという意味はなく単に無視されるという扱い。
- 899 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 10:53:39.13 ID:RYW8IiyE0.net]
- もう一回載せようか? はやくこれだけで作って欲しいんだが
>>854 いや、常識的な仕様を守ってないからクソコードって言ってるんだよw new Vue({ el: '#app', data: {isActive:false}, }) これだけでできると言ったくせに <div id="app"> <div class="my-component" :class="{active:isActive}"> <input type="checkbox" v-model="isActive">abc </div> <input type="checkbox" v-model="isActive">abc ←ここを押しても反応する <div class="my-component" :class="{active:isActive}"> <input type="checkbox" v-model="isActive">abc ←ここを押したら全部反応する </div> </div> はい、Vue側のコード。これだけって言ったんだから、これだけでやってみせろやw https://codepen.io/anon/pen/BbZNVM
- 900 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:15:35.75 ID:/2BHRI8Ma.net]
- 素人w
- 901 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:19:10.07 ID:OAlfgW/Ia.net]
- Vue(というかMVVM)の素晴らしいところはjavascript側はhtml/css側がどうなってるのか知らなくてもいいところ
そしてhtml/css側はjavascript側がどうなっているか最小限の知識で済むこと jQueryではお互いがお互いに対する知識を多く必要としているため結合が非常に強くなってしまう これでは分業は難しい
- 902 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:30:18.17 ID:RYW8IiyE0.net]
- >>875
嘘はいかんよ 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'}) VueのJavaScriptの中にHTMLが埋め込まれてしまってる
- 903 名前:デフォルトの名無しさん [2019/03/09(土) 11:43:48.95 ID:e9DsS9n/0.net]
- >>873
馬鹿野郎。。。それは最初のv-bindとv-modelのサンプルだろうが。 コンポーネントはこっちだ。 https://codepen.io/hinoragi/pen/YgVQjK 何度も何度も行ったがhtmlは分離できるぞ。ちったー勉強しろよ。 んでさ、修正点があるなら自分で書けばいいじゃない。別に複雑なコードじゃない。たった数行だぜ?コードに異論があるならコードで示す。当たり前だと思うがjQuery君は違うのかな? それすら出来ず、vueが分からないからオウム返しのようにクソ呼ばわりする。それただのバカって言うんだよ。いい加減自覚しろ。 君に少しでもプライドがあるなら、君の思ったとおりに動作するvueのコード上げてみな。時間はかかってもいいからさ。
- 904 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:45:53.12 ID:OAlfgW/Ia.net]
- >>876
埋め込んだのだからそれは仕方ないでしょう ちなみに私はVueの真の利点はMVVMによるViewとViewModelの分離であると考えています 世の人々はコンポーネント志向に興味を惹かれているようですがそれはオマケです 私はVueを使ったとしてもhtml/cssとjsを同居させることはありません それにjQueryでもコンポーネント化しようとすればテンプレートの埋め込みになる筈です 埋め込みを拒否した場合はhtmlのコピペになるでしょう その点についてはVueもjQueryも同じことです なので問題はVueではなくコンポーネント志向の方にあることがわかります
- 905 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:47:01.74 ID:RYW8IiyE0.net]
- > 何度も何度も行ったがhtmlは分離できるぞ。ちったー勉強しろよ。
だったら分離してくださいよ。 "分離できるぞ" と言ってるからには、今のコードは分離されてないってことでしょ それをしないのは、分離すると余計に長くなるってことなんでしょ?
- 906 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:47:56.22 ID:GVs3bbIF0.net]
- Vue, React は、コンポーネント指向。
デザイナー・プログラマーの分業体制 jQuery は、そういう観点ではない!
- 907 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:48:33.65 ID:RYW8IiyE0.net]
- >>878
> それにjQueryでもコンポーネント化しようとすればテンプレートの埋め込みになる筈です ならない。なんのためにHTMLにテンプレートタグ <template> が出来たと思ってるんだ?
- 908 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:49:39.85 ID:OAlfgW/Ia.net]
- >>879
重要な点はVue(MVVM)はViewとViewModelが疎結合であり jQueryはViewとLogicが密結合している事です それに比べればコードの行数は大した問題にはなりません
- 909 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:53:02.83 ID:RYW8IiyE0.net]
- >>882
これがjQueryのコードなんだが どこが結びついてるの? $('.my-component [name="switch"]').change(function() { $(this).closest('.my-component').toggleClass('active', this.checked); });
- 910 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 11:53:04.50 ID:QoZVVHuY0.net]
- ツマンネーよ
- 911 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:00:56.94 ID:OAlfgW/Ia.net]
- >>881
それはテンプレートの置き場を変えただけです テンプレートをjavascriptからhtmlへ追い出すだけならVueでも可能です しかしコンポーネント志向場合はテンプレートをhtmlに追い出しても意味はありません 異なるページでコンポーネントを再利用する場合を考えればそれが無意味であることがわかります
- 912 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:03:54.96 ID:RYW8IiyE0.net]
- >>885
> それはテンプレートの置き場を変えただけです だからお前がjQueryだと埋め込むしか無いっていったから、 置き場を変えてやったんだろうが 置き場を変えることでデザイナが自由にHTMLを変更できるようになる プログラマは、中身がどう変わろうが意識する必要がなくなる これが分業だろうが
- 913 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:04:02.87 ID:N2GlqC3/0.net]
- もう「jQuery vs Vue」みたいなスレでも立ててそっちでやれよ
- 914 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:05:41.67 ID:RYW8IiyE0.net]
- >>885
> 異なるページでコンポーネントを再利用する場合を考えれば お前まさか、デザイナがページのヘッダとかフッタを 共通化せずにページごとに全部書いてると思ってるのか? 失礼だろw
- 915 名前:デフォルトの名無しさん [2019/03/09(土) 12:06:04.85 ID:e9DsS9n/0.net]
- >>879
君は本当に面白いな。俺には君の不満点が全部見えない。当たり前だよな他人だし。だから修正したコードを君自身が書くことに意味がある訳さ。勉強にもなる。それに君は俺が何を書いても文句を言うだろう。後付で色々言われるのは面倒だ。 だったら、君の素晴らしいコードと、俺の糞コードを比較すればいいじゃん?君の正当性はコードでしか証明できないんだぞ。 たった数行の修正だし簡単だからトライしてみなって。それを見て意見出し合おうや。
- 916 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:07:36.71 ID:flOfKdeWM.net]
- >>883
そのコードと<div>の中身がべったり対応してるじゃん my-component以外に正確にコピペしてもらわないと動かない時点でコンポーネントじゃない
- 917 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:07:52.12 ID:RYW8IiyE0.net]
- >>889
> たった数行の修正だし簡単だからトライしてみなって。それを見て意見出し合おうや。 えとさ、なんでお前の利益になることを俺がしないといけないの?w
- 918 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:08:40.26 ID:RYW8IiyE0.net]
- >>890
> そのコードと<div>の中身がべったり対応してるじゃん <div>の中身がべったりってどういうこと? divの中身はいろいろ変えられるんだけど? そもそもdivである必要すらない
- 919 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:12:57.48 ID:OAlfgW/Ia.net]
- >>883
>>>882 >これがjQueryのコードなんだが >どこが結びついてるの? > >$('.my-component [name="switch"]').change(function() { > $(this).closest('.my-component').toggleClass('active', this.checked); >}); ・適応対象のname属性がswitchでありクラス名がmy-componentの要素の子孫であること ・適応対象がchangeイベントをサポートしていること ・適応対象の直近のクラス名がmy-componentの要素がactiveクラスをサポートしていること 少なくともこの3つの物理的な条件をjsプログラマが知ってなければなりません さらにhtml/cssデザイナはjsプログラマがこれらの条件を期待していることを知っていなければなりません Vue(MVVM)ならばそのような仮定は全く必要ありません Viewとは独立してただ単にViewModelの属性のブール値を切り替えるだけです
- 920 名前:デフォルトの名無しさん [2019/03/09(土) 12:14:08.39 ID:e9DsS9n/0.net]
- >>883
なんで分からんの?まさにそれも密結合と言うんだぞ。クラス名やセレクタ使ってるだろ? スクリプトからはdomのクラスやセレクタなぞ、可能な限り知る必要はないってこと理解できない?
- 921 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:17:29.40 ID:RYW8IiyE0.net]
- >>893
Vue(MVVM)ならばそのような仮定は全く必要ありません 代わりにHTMLを直接書き換えるからです。 HTMLにコードがべったり結合してしまっています
- 922 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:17:40.62 ID:flOfKdeWM.net]
- >>892
jQプログラマ「my-componentを置いてくだだい」 デザイナ「<div class="my-component"></div>」 これで分業なんて出来るかよ
- 923 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:18:35.13 ID:RYW8IiyE0.net]
- >>894
> スクリプトからはdomのクラスやセレクタなぞ、可能な限り知る必要はないってこと理解できない? DOMのクラスやセレクタを使わないでやるなら HTMLに直接React用のコードを埋め込むしか無いやんw
- 924 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:18:44.76 ID:OAlfgW/Ia.net]
- >>886
デザイナは自由ではありません jQueryコードを理解してプログラムを破壊しないように作業しなければなりません プログラムを破壊しないための条件は明確にはなっていません そもそもあなたはコンポーネントの意味を理解していないようです template tagを使用しても別の画面では再利用できません それはコンポーネントではありません コンポーネントはテンプレートとロジックが1つのブロックとして再利用可能な形態になっている必要があります
- 925 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:21:48.66 ID:OAlfgW/Ia.net]
- >>888
それは補助的な方法論です 補助的な方法を使用していいならVueのコンポーネントからテンプレート分離することも容易に可能です あなたの最初の主張は完全に理を失いました
- 926 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:23:08.25 ID:RYW8IiyE0.net]
- >>896
jQueryプログラマ「この動きがほしい所に my-componentというクラス名をつけてください」 デザイナ「はいわかりました。昔からあるLightBoxみたいなやつですよね。 aタグに特定の属性をつけるだけで画像のポップアップができて簡単ですよね」
- 927 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:24:33.39 ID:RYW8IiyE0.net]
- >>899
> あなたの最初の主張は完全に理を失いました 意味わからん。逆だろ お前がjQueryでもコードの中にHTMLを埋め込むしか無い!って jQueryを貶めようとしたから、それは間違いって言ってるんだが。 俺がいつjQueryの理だといったよw マッピポンプしてるんじゃねーよ
- 928 名前:デフォルトの名無しさん [2019/03/09(土) 12:24:59.58 ID:e9DsS9n/0.net]
- >>891
うわあ。。性格ネジ曲がりすぎだろ。すっごく君のためを考えて言ったんだがなあ。 俺が書いてもvueを何も知らない君がどう評価するの?まさか文字数カウントして終わりか? 君の言ってるのはこういう事。 vueしりませーん、よめませーん。かきませーん。おぼえませーん。でもvueクソだわ!! 通用するわけねーだろ。どあほう。
- 929 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:26:05.91 ID:RYW8IiyE0.net]
- >>902
評価してやるからグダグダ言ってないでかけや
- 930 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:28:51.73 ID:OAlfgW/Ia.net]
- >>895
完全に依存性がなくなったわけではありませんがべったり依存していません Vue(MVVM)ではViewは明確に定義されたViewModelのインターフェースのみに依存します ViewModelの実装からは完全に隔離されます ViewModelのインターフェースがViewとViewModelの疎結合を保証する境界になっています 逆にjQueryではjs側がどのような実装を行っているか厳密に理解していなければViewを定義できません そ ViewとLogicを隔てる境界はありません
- 931 名前:デフォルトの名無しさん [2019/03/09(土) 12:31:29.70 ID:e9DsS9n/0.net]
- >>897
いいから無理にvueやreactの知識だすなってw。ボロでてるから。 コード埋め込みじゃなくてバインディング。 どうせ何が違うのか分からんだろ?いいから勉強してくれ。
- 932 名前:デフォルトの名無しさん [2019/03/09(土) 12:33:31.50 ID:e9DsS9n/0.net]
- >>903
書けやじゃねーよw 俺は答えた。それについて文句があるならまず自分でやるのが当たり前じゃん。 君は社会人じゃないのかね?俺は君のお守りしてるわけじゃないぞ?
- 933 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:36:22.72 ID:flOfKdeWM.net]
- >>900
それのどこがコンポーネントなんだよ 「この動き」と言った瞬間同じDOM構造が思い浮かんで初めて成立する会話 てかこの動きってなに?長々と説明する位ならコード見せた方が早いよね
- 934 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:38:01.89 ID:OAlfgW/Ia.net]
- >>901
Vueでコンポーネントを実装するとhtml/cssとjsが1箇所に記述されるため強い結合が生じるというのがあなたの最初の主張です ここには暗黙的に1つの前提がありました html/cssを別のファイルに定義しないという前提です しかしあなたは続く投稿でその前提を自ら覆しました あなたはtemplate tagを提示してhtml/cssを別のファイルに記述する手段があるならしてもよいとしてしまいました 前提が崩れたためあなたの最初の主張の理もまた失われたのです
- 935 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 12:38:30.60 ID:izNw5U5za.net]
- >>904
お前ももうそいつを説得しようとかバカなマネするのやめろ 論破と謂われようが勝利宣言されようが我慢しろ 無駄だし邪魔
- 936 名前:デフォルトの名無しさん [2019/03/09(土) 12:44:02.36 ID:e9DsS9n/0.net]
- >>900
あーそうだ、jQuery君に肝心な事聞き忘れてた。 君がmy-componentをコンポーネントと言うなら答えられるはず。 1、そのコンポーネントのインターフェイスは? 2、再利用は? 3、内部をどう隠蔽して部品化する? これコンポーネントの最低条件だから。本当はもっとある。 一つでも満たさない場合少なくとも仕事でコンポーネントと言ってはだめよ。 まあ保守するのが君一人ならオレオレコンポーネントでもいいんだけど。
- 937 名前:デフォルトの名無しさん [2019/03/09(土) 13:16:35.03 ID:e9DsS9n/0.net]
- >>897
>DOMのクラスやセレクタを使わないでやるなら >HTMLに直接React用のコードを埋め込むしか無いやんw やっぱりここにjQuery君の根本的な勘違いがあるな。 jQueryってのは基本密結合なんだよ。密結合ってのは、相手を明確に知ってないといけないという事。端的に言えばセレクタが元凶。密結合が好ましくないってことは知ってるよね。 んでさ、また君の不得意なvueですまんけどさ、疎結合ってのはこういう事。 <div v-show="isShow"><div> script側は変数isShowを切り替えるのみ。 違い分かるかな?スクリプト側からはdomを知らない&触れてない事。 メリットがとてつもなく大きな事も分かってるはず。いや分かれ。だったらデザイナに教えるなり、君が骨組み作ればいいだけ。。。いやそれができればこんな話になってないかああ。スレも残り少ないのに不毛だぜ。。
- 938 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:25:46.15 ID:GVs3bbIF0.net]
- コンポーネントは、HTML/CSS/JS を、1つの .vue ファイルにまとめる。
そして、header 用、footer 用などとして、再利用する。 各コンポーネントには、data-v-aaaaaa などのユニークな属性が付くので、区別できる(Scoped CSS) さらに、JSX 記法を使うと、JS 関数内に、HTML も書けるから、可読性が高い new Vue({ el: '#app', render: function(h) { return <div>Foo</div>; }, }); return <div>Foo</div>; の部分が、以下の関数に変換される。 return h('div', null, 'Foo');
- 939 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 13:28:20.83 ID:RYW8IiyE0.net]
- まだVue側のコードは出てないのか
- 940 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:01:33.87 ID:JGH8xftfM.net]
- コンポーネントを理解できてないってことだよな
- 941 名前:デフォルトの名無しさん [2019/03/09(土) 14:19:02.54 ID:47IMMy0/r.net]
- デザイナー兼プログラマーの俺様なら全て解決する問題だな
jquery使うのはWordPressのみ Webアプリ系はvueかReactで作る てかデザイナーとフロント分けたほうが効率いいとかいう輩どもはこれでわかったんじゃねえの まったく解決できてねえじゃん むしろ悪化してる
- 942 名前:デフォルトの名無しさん [2019/03/09(土) 14:22:14.84 ID:e9DsS9n/0.net]
- >>913
この機会にvue react覚えればいいのに。 5chの不毛な論争でもそういう気持ちが芽生えれてくれれば無駄じゃない。100%君のプラスになる話だよ。俺は1円も得しないマジでw
- 943 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:22:18.32 ID:RYW8IiyE0.net]
- >>915
あれほどVueは密結合になってないといいはっていながら、 最後は密結合にしたほうがいいっていうんだから面白いよなw
- 944 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:22:58.79 ID:RYW8IiyE0.net]
- >>916
すでにVueもReactもマスターした上で言ってんだよw VueもReactも密結合になるだけでメンテナンスしづらくなり コードの量も増えるって。
- 945 名前:デフォルトの名無しさん [2019/03/09(土) 14:35:46.09 ID:e9DsS9n/0.net]
- >>918
ほう昨日はnew Vue()すら知らなかった君が、たった一日でマスターしたのか。しかもreactも。って冗談でも笑えねえぞこら。 あとまあ、、一応聞いとくか、、 > VueもReactも密結合になるだけでメンテナンスしづらくなり どのへんが密結合なんでしょうvue reactマスターさん? まだまだ私も勉強中なので参考までに教えてください。 まずは密結合の意味からお願いします。
- 946 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:37:44.00 ID:RYW8IiyE0.net]
- >>919
見た目(デザイン)を変更しようと思った時にJavaScriptのコードを 変更しなければいけないのが密結合です。
- 947 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:39:02.01 ID:RYW8IiyE0.net]
- もう少しわかりやすく言えば、
見た目(デザイン)を変更しようと思った時に、JavaScriptを全く知らない人に 担当させられないのが密結合の証拠です。
- 948 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:46:41.07 ID:aSIxwjYia.net]
- コンポーネントぶち殺すマン
- 949 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:50:50.25 ID:RYW8IiyE0.net]
- >>922
コンポーネントと見た目(デザイン)は別の概念です。 VueやReactを使うとコンポーネントに見た目(デザイン)が蜜に結合してしまって 再利用しづらいコンポーネントになってしまうと自白しているようなもんですね。 同じコンポーネントでも見た目(デザイン)は別のものに変更できるようになってないと いけません。テーマとかスキンという言葉を使えば理解できますか?
- 950 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:55:21.16 ID:izNw5U5za.net]
- 正直行数が少ない方が正義って思う人はjQuery使ってていいんじゃないかと思うよ
- 951 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 14:57:22.21 ID:RYW8IiyE0.net]
- 行数よりも、HTMLとCSSとJavaScriptが
明確に分離できてるのがjQueryの強みですけどね
- 952 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:16:00.82 ID:RYW8IiyE0.net]
- というかVueの方が行数が長くなると認めたレスなのかw
- 953 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:19:43.98 ID:/2BHRI8Ma.net]
- 動的にタグの数が変わるようなものはjqueryでどう書くのでしょうか?
- 954 名前:デフォルトの名無しさん [2019/03/09(土) 15:22:05.65 ID:47IMMy0/r.net]
- ほんとエンジニアって使えねえなあ
行数ごときで争ってるバカどもw WebアプリなんだからUIUXもシステムで作るんだから右脳左脳両方使って効率よく作り出せよ デザインセンスゼロだから行数で言い合うしかねえんだろ お絵描き教室からはじめろ
- 955 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:25:37.25 ID:flOfKdeWM.net]
- >>723の「こんな程度」のUIをJS
知らないデザイナーと>>900みたいな会話で分業して作ってるんなら 色んな意味で尊敬するわ 俺なんて地獄しか見えないもん
- 956 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:33:47.36 ID:/2BHRI8Ma.net]
- 動的にタグの数が変わるものはjqueryでどう書くのでしょうか?
タグをjsに書いたりしないですよね
- 957 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:44:26.89 ID:RYW8IiyE0.net]
- > タグをjsに書いたりしないですよね
当たり前だろ。そんな事したらJavaScriptの中に タグが埋め込まれてしまってデザインが用意に変更しづらくなるだろ
- 958 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:48:30.46 ID:/2BHRI8Ma.net<
]
- [ここ壊れてます]
- 959 名前:> >>931
それは知っていますよ。どう書くのでしょうか? [] - [ここ壊れてます]
- 960 名前:デフォルトの名無しさん [2019/03/09(土) 15:55:06.21 ID:e9DsS9n/0.net]
- >>919
まあ予想してたと思うけど、、ちょっと長いよ。2つに分ける。 >見た目(デザイン)を変更しようと思った時にJavaScriptのコードを変更しなければいけないのが密結合です。 違います。 Javascriptのコードと言うからややこしくなるんです。データ駆動という言葉を知っていますか? 例えばform。form全体の状態を保持するjsonAがあるとしましょう。この
- 961 名前:鼾、formの"見た目"はjsonAの鏡となっていなければなりません。リアクティブは鏡に例えてよく説明されますよね。
で次にjsonA.isActive=trueなら、対応するUIはそれが"どんな要素であれtrueの状態である”という事です。鏡ですからね。 逆に<input type="checkbox" v-model="isActive">をクリックすれば、jsonA.isActiveも自動的に変更され従って他の要素も自動的に反映されます。 データ駆動ではこの様に、直接触れない(疎結合な)鏡の相手に対して、無意識に、自動的に(鏡の様に)反映されます。 でもね、もしかしたら君は今でもこう思ってるでしょう。 v-model="isActive" <<< 密結合じゃねえの? 違うのですよ。domはisActiveが何者か知らないのです。isActiveという名前の何か、なんです。name="isActive"じゃないんですよ。 ただただ自分の状態を反映する鏡の相手を指定しているだけなんです。この違い、わかりますか? 逆に密結合というのは、 <input type="checkbox" name="checkbox"> これです。自分をname=checkboxだと宣言し、それに対してアクセスするよう指示しています。アクセスするのはjQueryそしてセレクタですが。 先程の例で言えば、isActiveを変更したい場合、domのnameを知らないと何もできません。 この状態というか処理系を、密に結合している、というのです。つまりjQueryを使う限り大部分は密結合なんですよ。驚きですね!! さてこれが本当の意味の、疎結合、密結合です。少なくともWEB業界ではそうです。 それにしてもコンポーネントといい、君は本当に勝手な解釈をしますね。もっと勉強しましょう。 [] - [ここ壊れてます]
- 962 名前:デフォルトの名無しさん [2019/03/09(土) 15:55:34.80 ID:e9DsS9n/0.net]
- >>919
> 見た目(デザイン)を変更しようと思った時に、JavaScriptを全く知らない人に担当させられないのが密結合の証拠です。 もちろん違います。 name="checkbox"がv-model="checkbox"になるだけです。スクリプトの要素はありません。 テキストのバインディグも {{name}} とするだけです。スクリプトの要素はありません。他にもありますが、デザイナが新たに覚える文法は多くないです。 デザイナの教育、指示はむしろエンジニアの腕の見せ所ですよ。負担となるかは大部分が君次第。フレームワークだけのせいにしないように。 詳しくはvue公式を読みましょう。とてもわかり易くておすすめです。 >>923 ところで、君はコンポーネントの質問に答えてないですよね? 君の示したコンポーネント、<div class="my-component">のインターフェイス、再利用、隠蔽について答えてください。 言ってる意味さえ分からないかもしれませんが。。それなら質問しましょうね。
- 963 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:57:33.29 ID:RYW8IiyE0.net]
- >>932
https://jsfiddle.net/v34njaes/
- 964 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 15:58:48.05 ID:RYW8IiyE0.net]
- >>933
見当違いすぎてワロタw HTML/CSSの世界に、Reactのものが含まれてるから 密結合だって言ってんだろ
- 965 名前:デフォルトの名無しさん [2019/03/09(土) 16:02:36.25 ID:e9DsS9n/0.net]
- >>936
>HTML/CSSの世界に、Reactのものが含まれてるから、密結合だって言ってんだろ。 だからそれは密結合じゃないの。君の変な定義はどうでもよろしい。 相変わらず間違いを認めないヤツだなあ。。ググってみなよ。すぐ分かる事からさ。
- 966 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:03:36.34 ID:RYW8IiyE0.net]
- >>934
> 君の示したコンポーネント、<div class="my-component">のインターフェイス、再利用、隠蔽について答えてください。 インターフェース? 何が聞きたいのかわからんが、 my-componentの中に特定のイベントを送る。my-componentの中ではそのイベントに反応する。 インターフェースはイベントによって疎結合な状態で作ることが可能。それだけだろ。 再利用? >>838でも書いてるだろ。以下のどんなDOMの構造であっても、 jQueryのコードは再利用できてる <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のコードは状態を持ってないので 隠蔽するものはなにもない。無名関数使ってるので関数名すら隠蔽された状態だし 単にクラス名がかぶらないようにしたいってだけならプリフィックスでもつければおしまい
- 967 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:04:07.64 ID:RYW8IiyE0.net]
- >>937
ぐぐったけど、間違いないですねw
- 968 名前:デフォルトの名無しさん [2019/03/09(土) 16:05:45.02 ID:e9DsS9n/0.net]
- >>936
んでさ、vue reactマスターの君はコンポーネントが全くわかってない。何も質問に何も答えられない。どうなのよマスターさん。 いろんな意味で恥ずかしいと思わんの?よくそんな妙な知識で仕事できるなあ。 同僚とか上司とかいたら注意されない?まあいれば、だけどさ。
- 969 名前:デフォルトの名無しさん [2019/03/09(土) 16:06:58.43 ID:e9DsS9n/0.net]
- >>939
はい、ソースだしなさいねー。嘘ついてもすぐわかりますよー。
- 970 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:08:25.60 ID:RYW8IiyE0.net]
- どうやら>>938には反論できないから
レスするのすっ飛ばしたようだなw
- 971 名前:デフォルトの名無しさん [2019/03/09(土) 16:14:51.37 ID:e9DsS9n/0.net]
- >>938
やっと書いたか。本当に待ちくたびれたわい。 >インターフェース? 何が聞きたいのかわからんが、 どあほ。。。まじで言ってる??コンポーネントのインターフェイスが分からん? よく堂々と白状できるな。。俺なら到底言えないわ。 あとさ、君のコードは再利用できてない。 それは単に、コ ピ ペ と言うの。 >何から何を隠蔽するしたいのかわからん。jQueryのコードは状態を持ってないので隠蔽するものはなにもない もう、、、、なにを言っていいのやら。 あのね、例えばさ、外部からさ、直接 $("div.my-component input")とか、コンポーネント内部にダイレクトにアクセスできちゃ駄目なのよ。 これってコンポーネントの最低条件なんだけど、、君はどうやって勉強したんだ。 いいからこれもググってみなよ。。。うーん、だれか突っ込んであげてください。私はもう疲れました。
- 972 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:16:33.74 ID:RYW8IiyE0.net]
- >>943
> どあほ。。。まじで言ってる??コンポーネントのインターフェイスが分からん? じゃあ、VueからReactのコンポーネントのインターフェース書いてみろよw
- 973 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:17:00.95 ID:RYW8IiyE0.net]
- >>943
> あのね、例えばさ、外部からさ、直接 $("div.my-component input")とか、コンポーネント内部にダイレクトにアクセスできちゃ駄目なのよ。 VueやReactでもダイレクトにアクセスできますが?
- 974 名前:デフォルトの名無しさん [2019/03/09(土) 16:19:28.37 ID:e9DsS9n/0.net]
- >>945
おいおいおいおいー、どこがvueマスターなの? 直接アクセスできません。インターフェイスを介してアクセスします。 わかった?OK?
- 975 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:21:26.12 ID:RYW8IiyE0.net]
- はい、Vueでコンポーネント内部にダイレクトにアクセスできちゃいましたw
https://codepen.io/anon/pen/ywXVOW
- 976 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:24:13.68 ID:RYW8IiyE0.net]
- 確か上の方で、scopedを使えば、こういうCSSからコンポーネントを
守ることができる。コンポーネントは影響を受けないってのたまわっていたね? やってみて div { //CSS ダイレクトアクセス background-color: red; }
- 977 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:26:40.96 ID:zxiwPMOw0.net]
- さすがに呆れたというかコメントできない…
- 978 名前:デフォルトの名無しさん [2019/03/09(土) 16:27:02.65 ID:e9DsS9n/0.net]
- >>947
笑いが止まらんぞおいっっっw 今日一番だわ!!! 本当に君には驚かされるな!!! どこまで発想がjQueryなのよ。そりゃvueと共存できるよ。注意すればね。 いやすまん、ニヤニヤが止まらんから後でちゃんと返事する。
- 979 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:33:17.69 ID:RYW8IiyE0.net]
- 結局Vueのコンポーネントは隠蔽化されてるとか言うのは
技術的にそうなってるんじゃなくて、単にフレームワークの決まりとして 外部から触らないようにしましょうと文書で書かれているだけ それを言ったら、jQueryでは情報のやり取りには (カスタム)イベントを使用しましょう。コンポーネントの担当者以外が 直接内部をいじってはいけません。と文書でかけば終わるわけだよ。
- 980 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 16:42:10.68 ID:RYW8IiyE0.net]
- 少し訂正
それを言ったら、jQueryでは "コンポーネント間" の情報のやり取りには (カスタム)イベントを使用しましょう。コンポーネントの担当者以外が
- 981 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 17:55:48.33 ID:GVs3bbIF0.net]
- header.vue 内の、header コンポーネントには、そのコンポーネントだけに適用される、HTML/CSS/JS を含み、
ユニークな属性、data-v-aaaaaa が付いている footer.vue 内の、footer コンポーネントには、そのコンポーネントだけに適用される、HTML/CSS/JS を含み、 ユニークな属性、data-v-bbbbbb が付いている 各コンポーネントには、ユニークな属性が付いているため、お互いに影響を与えることはない(Scoped CSS) 各コンポーネントは疎結合! 従来のやり方では、3つのHTMLファイル・4つのCSSファイル・5つのJSファイルがあれば、 3 * 4 * 5 = 60通りの中から、適用される組み合わせを探すのに、時間が掛かりすぎるため破たんした!
- 982 名前:デフォルトの名無しさん [2019/03/09(土) 17:57:51.41 ID:e9DsS9n/0.net]
- >>952
いやすまん、ちょっと笑いすぎた。失礼しました。 ってー君もめげないなあ。。。その不屈の精神があればvue reactなんてすぐ習得できると思うぞ本当に。 >結局Vueのコンポーネントは隠蔽化されてるとか言うのは技術的にそうなってるんじゃなくて、単にフレームワークの決まりとして外部から触らないようにしましょうと文書で書かれているだけ 文章で書かれてるだけww、全然ちがうし、大体そんな事書かれてないし! vueはフレームワークなの。jQueryと違うの。vue使ってる限りはきちんとコンポーネント化できてるよ。もし直接アクセスできたらバグだよ。 >それを言ったら、jQueryでは "コンポーネント間" の情報のやり取りには(カスタム)イベントを使用しましょう。 コンポーネントの担当者以外が直接内部をいじってはいけません。と文書でかけば終わるわけだよ。 はい気をつけまーす。でも人間は間違えるし忘れるよねぇ。うっかりアクセスする事も十分あり得るよね。 ただうっかりdocument.getElementsByClassNameなんて発行しないよなあ。そもそもdocument自体使わんし。どんなミスだそれ。 認めようよ。君のコンポーネントは不十分というか君の理解不足とスキル不足だよ。そしてvueは基準を満たす。 流石にこれは擁護できんし見逃せんわ。認めるまで議論は進まない。まあどうせスレも終わるし最後にありがとう、面白かった。
- 983 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 18:00:05.54 ID:RYW8IiyE0.net]
- >>953
> 従来のやり方では、3つのHTMLファイル・4つのCSSファイル・5つのJSファイルがあれば、 > 3 * 4 * 5 = 60通りの中から、適用される組み合わせを探すのに、時間が掛かりすぎるため破たんした! とりあえずお前はブラウザの開発者ツールを使えるようになろう。 あとはgrepも便利だぞ そしたら今度はコンポーネントごとにグループ分けしてディレクトリ管理して webpackやsassも使えるようになろう
- 984 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 18:00:22.08 ID:RYW8IiyE0.net]
- > ってー君もめげないなあ。。。その不屈の精神があればvue reactなんてすぐ習得できると思うぞ本当に。
だから習得してるってw
- 985 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 18:00:41.76 ID:RYW8IiyE0.net]
- > vueはフレームワークなの。jQueryと違うの。vue使ってる限りはきちんとコンポーネント化できてるよ。もし直接アクセスできたらバグだよ。
はい、Vueでコンポーネント内部にダイレクトにアクセスできちゃいましたw https://codepen.io/anon/pen/ywXVOW
- 986 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 18:01:53.35 ID:RYW8IiyE0.net]
- >>953
> 各コンポーネントには、ユニークな属性が付いているため、お互いに影響を与えることはない(Scoped CSS) だからユニークな属性をつければいいと思いますよ?
- 987 名前:953 mailto:sage [2019/03/09(土) 18:05:06.61 ID:GVs3bbIF0.net]
- 従来のやり方では、3つのHTMLファイル・4つのCSSファイル・5つのJSファイルがあれば、
3 * 4 * 5 = 60通りの中から、適用される組み合わせを探すのに、時間が掛かりすぎるため破たんした! これが密結合! どこかを修正すると、別のどこかがおかしくなるため、無限に修正を繰り返すことになる! 今までの日本車のすり合わせ技術と同じ。 どこかを修正すると、別のどこかがおかしくなるため、外人よりも日本人に有利だった これを部品ごとに疎結合にすることで、ある部品の修正が、他の部品に影響を与えないため、 すり合わせ技術がなくなり、外人でも同じ車が作れるようになった すり合わせがあると、単独で部品が作れない・単独で働けないから、 常に全員が相談・残業して働く、日本人が有利だった
- 988 名前:デフォルトの名無しさん [2019/03/09(土) 18:09:10.56 ID:e9DsS9n/0.net]
- >>957
もういい。休んでいいんだ。十分スレを楽ませてもらった。 君がいいと言うならいい。常識破りのまま、そのまま突っ走ってくれ。
- 989 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 18:10:12.37 ID:RYW8IiyE0.net]
- 次スレ立てました
Vue vs React vs Angular その2 https://mevius.5ch.net/test/read.cgi/tech/1552122580/
- 990 名前:953 mailto:sage [2019/03/09(土) 18:17:05.53 ID:GVs3bbIF0.net]
- すり合わせは、金メダルのスピードスケート女子パシュートもそう。
常に全員が相談・残業して練習する、日本人が有利 外人は思想・人種・性格もバラバラで、長時間一緒に居れない しかも草食動物の日本人とは違い、外人は肉食動物で自己主張が強いから、 異なる思想・人種・性格の奴とは、殴り合いのケンカになる! 外人は、日本人みたいに従順で、すぐに従ったりしないから
- 991 名前:953 mailto:sage [2019/03/09(土) 18:26:31.50 ID:GVs3bbIF0.net]
- >>958
>だからユニークな属性をつければいいと思いますよ? 従来のやり方では、無理 属性を付けても、それを訂正してはずす時には、 また、3 * 4 * 5 = 60通りの中から、正しいかどうかを確かめないといけないから、時間が掛かりすぎる 密結合・すり合わせは、どこかを修正すると、別のどこかがおかしくなるため、 無限に修正を繰り返すことになる だから、部品やプログラミングは、疎結合でないとダメ!
- 992 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 18:32:31.91 ID:RYW8IiyE0.net]
- >>963
その計算になんの根拠もねーわw コンポーネント毎にCSS定義してるから 何を探すと言ってるのかさっぱりわからない。 .my-compnent { [name="switch"] { } sonota-1 { } sonota-2 { } } JavaScriptファイルも my-compnent に関するものは my-compnent.js に全部収められているし、 あ、なるほど、jQueryがだめと言ってる根拠は 自分がまともな管理できてないからだってことかw
- 993 名前:953 mailto:sage [2019/03/09(土) 18:35:08.58 ID:GVs3bbIF0.net]
- 従来のやり方では、3つのHTMLファイル・4つのCSSファイル・5つのJSファイルがあれば、
3 * 4 * 5 = 60通りの中から、適用される組み合わせを探すのに、時間が掛かりすぎるため破たんした! さらに、これの悪い所は、3 + 4 + 5 = 12 の足し算じゃなく、掛け算になるのが最悪! 考えることが加速度的に増える ここを修正したら、別の場所がおかしくなりましたとか、こればっかりやってる。 延々と、適用される組み合わせを探してる!
- 994 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 18:36:52.78 ID:RYW8IiyE0.net]
- 根拠言えないから、必死に嘘を言いまくるのねw
どっかの国の人と行動がおなじになってるよw
- 995 名前:953 mailto:sage [2019/03/09(土) 18:46:21.76 ID:GVs3bbIF0.net]
- 自分で属性を付けても、またそれを修正したり、訂正してはずす時には、
また、3 * 4 * 5 = 60通りの中から、正しいかどうかを確かめないといけないから、時間が掛かりすぎる だから、各コンポーネントを別々のファイルに書くだけで、 ユニークな属性を自動的に付けてくれる、フレームワークが良い
- 996 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 18:51:07.24 ID:pp+gnfPcM.net]
- >>961
荒らし行為 問答無用で出て行け
- 997 名前:デフォルトの名無しさん [2019/03/09(土) 18:55:36.80 ID:e9DsS9n/0.net]
- >>961
そんなに悔しかったの?次スレってwほんと滲み出てるw まあ頑張れよ自称vueマスターさんw。ほらテンプレに書かなきゃ。vueでdocument直接いじっちゃダメよー。逸材。
- 998 名前:デフォルトの名無しさん [2019/03/09(土) 18:56:19.05 ID:jSVYUNoJp.net]
- jQueryおじさんネトウヨだったのかw
年齢も高そうだしな...
- 999 名前:デフォルトの名無しさん [2019/03/09(土) 19:30:08.07 ID:e9DsS9n/0.net]
- jQuery君なあ。。ここまでの逸材なら色々拗らせた年齢不詳の40代かなあ。
つーか、ここまで vue react嫌うって何があったんだろ。そのくせ自称vue reactマスターなんだぜw。何その劣等感。しかもマスターならvueでもdom直接いじれるんだぜ。それでコンポーネントの垣根も超えられるって自慢するんだぜ。でも文書化で禁止すればokなんだぜ。 これで納得できるのが本当凄え。
- 1000 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:42:14.57 ID:fCQTKW9ua.net]
- jQueryおじさん、スレチなんで次スレは来ないでね
- 1001 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:46:22.67 ID:C6v7oEvsM.net]
- >>961
これ通報じゃね?
- 1002 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 19:52:05.13 ID:izNw5U5za.net]
- ReactはReactNativeとセットにして一スレ立ててもいいんじゃない?
- 1003 名前:デフォルトの名無しさん [2019/03/09(土) 20:20:05.00 ID:47IMMy0/r.net]
- 密結合だろうが疎結合だろうが俺の場合は右脳と左脳が同時に判断すらから何も問題がない
本当のフルスタックとはそういうものだ しかし左脳しか機能していないお前らは、理解不能で恐ろしい存在であるデザインのためにくだらない争いをしているわけだ レベルが低すぎてアプリ開発なんか無理だろ
- 1004 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 20:20:35.21 ID:GVs3bbIF0.net]
- テンプレを勝手に改変する、いつもの荒らしだろ
テンプレに、Ruby 禁止とか、jQuery・Lodash 禁止とか、 自分がわからない技術を禁止して、色々なスレを立てている奴 あちこちに、死ねとか書き込んでいる奴だろ
- 1005 名前:デフォルトの名無しさん [2019/03/09(土) 20:36:11.59 ID:e9DsS9n/0.net]
- jQuery君は最後っ屁していったのか。次から色々スルーするわ。
- 1006 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 20:37:03.42 ID:OAlfgW/Ia.net]
- >>975
疎結合のほうが理解しやすいことは確かですが理解のしやすさためだけに疎結合を目指すわけではありません 疎結合なシステムは個々のモジュールを独立にメンテナンス可能であるという点が最も重要なのです
- 1007 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 20:53:08.50 ID:RYW8IiyE0.net]
- 例えば、HTML、CSS、JavaScript。
個々のモジュールが独立してメンテナンス可能であるということです。
- 1008 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 20:59:34.50 ID:RYW8IiyE0.net]
- 例えばデザインですが、同じ機能を持ったコンポーネントでも
別のアプリだと違うデザインにしますよね? そういった時にデザインのみ独立してメンテナンスします。
- 1009 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 2
]
- [ここ壊れてます]
- 1010 名前:1:01:14.05 ID:RYW8IiyE0.net mailto: 見た目をちょっと変えるだけで、別のコンポーネントとして
管理するのは馬鹿げているわけです。 [] - [ここ壊れてます]
- 1011 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:07:26.91 ID:izNw5U5za.net]
- 渡すpropsで切り替えればいいんじゃない?
- 1012 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:08:16.18 ID:RYW8IiyE0.net]
- 時代はこの先Web Componentsの時代になり、
高度なコンポーネントが増えますが、 再利用可能であるということは、別のデザインを持ったサイトでも 使えるコンポーネントでなければなりません。 機能はコンポーネントに閉じてよいですが、 デザインはコンポーネントに閉じてはだめなのです。 デザインはサイト全体で横断的に適用するものなのですから
- 1013 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:09:18.57 ID:Uscl0PAlM.net]
- 荒らしは出て行け
- 1014 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:10:57.82 ID:izNw5U5za.net]
- >>975
React専用スレ立ててよ
- 1015 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:11:12.56 ID:RYW8IiyE0.net]
- >>985
了解
- 1016 名前:デフォルトの名無しさん [2019/03/09(土) 21:14:19.58 ID:47IMMy0/r.net]
- >>978
そういうこと言ってんじゃねえよ
- 1017 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:16:41.18 ID:izNw5U5za.net]
- >>925
どうせならここじゃなくてQiitaで「jQueryの方がVueよりも優れてる理由」とかいう記事かけば誰かがお望みの回答をしてくれるんじゃないかと思うんだけどね
- 1018 名前:デフォルトの名無しさん [2019/03/09(土) 21:20:38.74 ID:jx9iLAiD0.net]
- > Javascript はweb制作管理板、CGI はWEBプログラミング板へ。
- 1019 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:22:22.46 ID:izNw5U5za.net]
- >>989
正直過疎板立てても仕方ないよ経験上
- 1020 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:23:34.06 ID:nmSMFs2da.net]
- Qiitaとかスレチとか、お前ら、jQueryおじさんが周りの言うこと聞くわけないだろ
エホバみたいなもんやぞ
- 1021 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:30:52.53 ID:AJ6jPa0v0.net]
- >>985
立てたぞ。>>974がセットにしてって言ってたからセットにした React と React Native のスレ https://mevius.5ch.net/test/read.cgi/tech/1552134567/
- 1022 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 21:49:36.92 ID:7ubvtRZR0.net]
- >>988
書くならもっと別物にするな メンテナンスしやすいコーディングスタイルとか jQueryがだめに見られてるのは、DOM要素を追加したり消したりすることであって クラス属性を書き換えるなどして、DOM要素にかんしてはCSSで制御するようにすれば メンテナンス性が高いことは明らかだからね
- 1023 名前:デフォルトの名無しさん [2019/03/09(土) 22:03:28.92 ID:47IMMy0/r.net]
- Vue vs React vs Angular Part.2
mevius.5ch.net/test/read.cgi/tech/1552136553/ 本スレPart2建てた こっちはjQueryの話禁止にした
- 1024 名前:デフォルトの名無しさん mailto:sage [2019/03/09(土) 22:05:43.66 ID:KVQbeC9/0.net]
- >>994
乙
- 1025 名前:デフォルトの名無しさん [2019/03/10(日) 09:10:34.18 ID:q7odbdCi0.net]
- jQueryは悪くない。ただスレチ。
次スレが有意義でありますように。
- 1026 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 09:50:49.25 ID:5/+zyaBC0.net]
- >>976
死ね
- 1027 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 10:51:49.09 ID:KLmR+9gsM.net]
- 結局主張のごり押しなだけで時間とスレの無駄だったな
- 1028 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 10:55:35.81 ID:9XIrDo2La.net]
- 5chではいつもの光景
- 1029 名前:デフォルトの名無しさん mailto:sage [2019/03/10(日) 10:59:45.81 ID:5/+zyaBC0.net]
- 次スレ
Vue vs React vs Angular Part.2 mevius.5ch.net/test/read.cgi/tech/1552136553/
- 1030 名前:1001 [Over 1000 Thread.net]
- このスレッドは1000を超えました。
新しいスレッドを立ててください。 life time: 78日 13時間 22分 9秒
- 1031 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|