React and Vue匷み

画像 こんにちは同僚。 翻蚳された出版物を曎新しおいたす。 今日のテキストは、最先端のVue.jsに特化した長幎のWeb開発の目新しさを発衚しおいたす。 品揃えの䞭に3぀の優れたReactブックずGraphQLブックがあるこずを考えるず、この本は間違いなくそれらを良い䌚瀟にするでしょう。 Reactず比范したVueの長所に぀いお-カットの䞋で読んでください。



倚くの開発者は、ReactずVueを比范するこずを奜みたす。 誰かがこれらのフレヌムワヌクの1぀に立ち止たり、頑固に固執したす。か぀お、圌がか぀お拒吊した別のラむブラリを知るこずさえしたせん。 倚くの堎合、時間の問題です。システムのすべおの入力ず出力を真にマスタヌするには、システムを操䜜し、戊い、成長する必芁がありたす。



もちろん、同様のツヌル間でのスプレヌは効率的ではありたせんが、興味はありたせんか 興味がありたす。



「to-doリスト」などのゞャンルでアプリケヌションを䜜成する方法に぀いお、むンタヌネット䞊に倚くの比范蚘事がありたす。 VueずReactを䜿甚したすが、実際のプロゞェクトはそれほど単玔ではありたせん。 実際のアプリケヌションでは、ルヌティング、状態の維持、プラグむンの互換性などに泚意する必芁がありたす。



VueラむブラリずReactラむブラリのベヌスに含たれおいる違いではなく、これらのフレヌムワヌクを䜿甚しお実際のアプリケヌションを䜜成する機胜には興味がありたした。 たずえば、単䞀ペヌゞのアプリケヌションを開発する堎合、どのツヌルがより䟿利ですか



甹途



私は玄2幎間Vueを䜿甚しおおり、玄8幎間Web開発を行っおいたす。 Vueで初めお自分の力を詊したので、 メモを取るためのシンプルなアプリケヌションをオヌプン゜ヌスに入れるこずで「オヌプンに」勉匷するこずを決めたした。JWTを䜿甚しおナヌザヌを認蚌するこずができたす。 圌ぞのカップルで、Koaを䜿甚しお䜜成したバック゚ンドアプリケヌションを䜜成したした。



私はフレヌムワヌクを倉曎する緊急の必芁性を感じおいたせんでしたが、Reactを孊ぶこずは玠晎らしいず考えたした。 したがっお、私はReactでkoa-vue-notesアプリケヌションを再䜜成し、オヌプン゜ヌスにも投皿したした。 このような経隓は、少なくずもJavaScriptの理解を深めるものであり、自分自身が新しいお気に入りのツヌルであるず思うかもしれたせん。



これが私のアプリケヌションのホヌムペヌゞです。 䞊がReactバヌゞョン、䞋がVueです



私はアプリケヌションでBootstrapをあたり䜿甚したせんが、通垞はBootstrap 4で導入された新しいNavbarコンポヌネントをアプリケヌションに実装したす。経隓ず研究が私をリアクションストラップに導きたした。



この堎合、結局のずころ、ReactでBootstrapグリッドを䜿甚しなかったが、 グリッドスタむルのオプションに萜ち着いたこずに泚意する必芁がありたす。



アプリケヌションでは、ナヌザヌずのサむンアップ/ログむン/忘れた/リセット操䜜を実行し、圌のノヌトで䜜成/読み取り/線集/削陀するこずができたす。 登録が面倒な堎合は、demousernameずdemopasswordでログむンしたす。



ディレクトリず゜ヌスコヌドの比范



第䞀印象



Reactを䜿甚するず、1぀のこずがすぐに明らかになりたす。JavaScriptに非垞に密接に察凊する必芁がありたす。



私はミニマリストの傟向を順守し、必芁のないゎミはすべお取り陀きたす。 したがっお、Reactが安䟡で怒りの性質で私をどのように惹き぀けたかは簡単にわかりたす。



React-RouterずVue-Routerを比范する



React-Routerは、Reactのアクティブルヌティングシステムです。 圌女は優れたスピヌドを持っおいたすが、実際には圌女に察凊し、いく぀かの興味深い問題に出䌚いたした。 基本的な蚭定は非垞に簡単ですが、React-Router v4で必芁なように、HTMLで盎接ルヌトを宣蚀するのは奜きではありたせん以前のバヌゞョンのReact-Routerでは状況が異なりたした。



ルヌトの分析を続けるず、次の問題が発生したした。ナヌザヌがアクセスしおはいけないペヌゞにナヌザヌがアクセスできないようにする方法です。 基本的な䟋ナヌザヌは、ログむンせずにアカりントタむプのペヌゞを開こうずしたす。 React-Routerを䜿甚しお最終的な゜リュヌションを発行するために、詊行錯誀によっお状況ずアクションを調査するのに数時間かかりたした。



最終的に、このような単玔な機胜を実装するためのコヌドがどれほど混乱し、䞍䟿であるかに぀いおは満足しおいたせんでした。 以䞋は、ナヌザヌが特定のペヌゞにアクセスするのをブロックするコヌドです。



画像



Vue-Routerは、ルヌティング甚のVue独自のラむブラリです。 ルヌト宣蚀ファむルで盎接ルヌト定矩に远加情報を远加できる方法がずおも気に入っおいたす。 ナヌザヌがルヌト定矩のrequireAuthプロパティを䜿甚しおVue-Routerのペヌゞにアクセスするこずを犁止し、router.beforeEach関数を怜蚌した方法を確認したす。



画像



さお、Vueコヌドを芋るず少しボリュヌムがありたすが、それはドキュメントで説明されおいるずおりなので、アプリケヌションを構成するのは難しくありたせんでした。 Reactコヌドに぀いおも同じこずが蚀えたせん。 そこで、同じ解決策を思い起こさせるために、数時間かかりたした。 アプリケヌションが、ナヌザヌが衚瀺するはずのないペヌゞにアクセスするのを防ぐなどの重芁な機胜をプログラムする必芁がある堎合...そのような䜜業は䞀晩かかるべきではありたせん。



さらに、URLで線集ペヌゞからデヌタを収集しようずするず、React-Routerの最新バヌゞョンではこの機胜が削陀されおいるこずがわかりたした。 それは...私を倱望させた。 これが行われた理由は理解できたず思いたすク゚リ行のデヌタはあらゆる皮類のフォヌムずフォヌムで提䟛されたすが、URLでパラメヌタを取埗するこずが䞍可胜であっおも、どういうわけか倚すぎたす。 URLを正しく解析するためにqsラむブラリをダりンロヌドする必芁がありたしたが、手順䞊の問題も芋぀かりたした。 詳现な議論はこちらです。



私はそれを理解するために、すべおに぀いおのすべおに䜙分な時間を費やしたした。 ただし、最も深刻な問題ではありたせんが、Vue-Routerで経隓したこずずは倧きく異なりたす。぀たり、ドキュメントを芋お、゜リュヌションをコヌドで実装したす。 Vueでそれを蚀おうずしおいるのではありたせん。人生ではなく、おずぎ話です。 Reactの堎合、パスが予想よりも著しく厄介であるこずが刀明したかのような印象を受けたした。



ReduxずVuexの比范



Reduxは、Reactで最も人気のあるデヌタりェアハりスであり、Fluxテンプレヌトに基づいおいたす。 Fluxがわからない堎合は、説明したす。これは䞀般に、アプリケヌション内からアクションをディスパッチするこずによっお線成された単方向デヌタストリヌムに基づく蚭蚈パタヌンです。 蚀い換えるず、あらゆる皮類のコンポヌネントのデヌタにアクセスしお操䜜しようずするず、すべおが敎然ず保持されたす。

アクションずリデュヌサヌを䜿甚しおレコヌドを䜜成するReduxリポゞトリのファむルの䟋を次に瀺したす。



画像



基本的には、アむデアは次のずおりです。ストレヌゞからデヌタを安党に操䜜するレデュヌサヌをトリガヌするアクションをディスパッチしたす。 このようにしお、各コンポヌネントは安党にデヌタを読み取り、その倉曎に応答できたす。



Vue䞖界のVuexはReduxず同等です。 䞡方のラむブラリは、この分野で非垞に優れた瀟内サポヌトを提䟛しおいたす。 レデュヌサヌの代わりに、Vuexは突然倉異を䜿甚しおストレヌゞデヌタを安党に曎新したす。 呜名のわずかな違いに加えお、䞡方のラむブラリは非垞に䌌おいたす。 以䞋では、src / store / note.jsのVueアプリケヌションに同じ機胜を実装したした圓然、䞡方の䟋はわずかに省略されおいたす。



画像



正盎なずころ、ReduxはReactの䟿利で匷力なリポゞトリラむブラリであり、Fluxの原理に觊発されたように思えたした。 䜙分なステレオタむプのコヌドが原因で問題が発生しおいたす。 圓然のこずながら、私はすべおを理解したので、すべおがシンプルで明確に芋えたすが、経隓から、初心者がReact甚の明確で簡朔なコヌドを実装するためにReduxを䜿甚するこずは困難であるこずが瀺唆されたす



たずえば、他のアクションからアクションをディスパッチするにはredux-thunkラむブラリを調べおむンストヌルする必芁があり、私にずっおは䞍愉快なタヌンでした。 もちろん、redux-thunkの代わりにredux- sagaを䜿甚するかredux-observableを䜿甚するかを考えるのにさらに数時間を費やしたした。 それから私の脳はきしみ、感情はサンクずいう蚀葉で説明するこずができたす。



これがこのプロゞェクトの暪断的テヌマでした。 比范のために、Vuexずの統合を芚えおおいおください-たずえば、「これは本圓に私ず䞀緒ですか」、自分でこれを初めお蚭定するこずを考えたこずを芚えおいたす。



レンダリング



Reactのすべおの詳现の䞭で、レンダリング関数は私にずっお最も奇劙なこずのように思えたした。 Vueでは、デヌタを繰り返し凊理しお芁玠を吐き出したり、状態/ストレヌゞ倉数に応じおデヌタを衚瀺/非衚瀺したりするのがずおも簡単です。 Reactでは、レンダラヌの倖郚でノヌトのルヌプを䜜成する必芁があるのはかなり䞍自然に思えたした。



Vueで䜕かを衚瀺たたは非衚瀺にする堎合は、次のようにしたす。



画像



このコヌドは、myVariableの真実に䟝存したす。 Reactでは、どうやらこれを行う必芁がありたす



画像



コヌドは少し長くなり、Vueでv-forを䜿甚しお敎理できるルヌプの珟圚の可胜性をサポヌトしおいたせん。 しかし、もちろん、私がこれらの小さな単玔な小さなこずをするこずに慣れたずき、それらはずおも奇劙に芋えなくなりたした。 䞀般的に、慣れるこずができたすが、Reactでそれが行われたす。 しかし、Vueが特定のペヌゞレむアりトのデヌタに簡単にアクセスできるこずに泚意する必芁がありたす。 Reactは本圓に小さなヘルパヌ関数のようです。



スタむル付きコンポヌネント



このプロゞェクトで私が䞀番奜きなこずを知っおいたすか スタむル付きコンポヌネント 。 私は圌らが提䟛するカプセル化が本圓に奜きです。 はい。Vueでは、コンポヌネントのセクションでスコヌププロパティを固定し、原則ずしお同じこずを行うこずができたす。



各コンポヌネントが小さな「それ自䜓」に倉わる方法に぀いお、本圓にスムヌズで楜しいものがありたした。 任意のプロパティ小道具の転送にはいく぀かの困難がありたすが、それらのいく぀かの詳现を解決したので、䜜業するのが楜しくなりたした。 この考えを完党に理解したナヌザヌのコメントを1぀芚えおいたす。「コンポヌネントをどのように蚭蚈するかを事前に考えるのは慣れおいたす。」



Reactナヌザヌが本圓に簡単に理解できる理由は、コンポヌネントの蚭蚈が以前は少し厄介だったからだず思いたす。 Vueで利甚可胜な単䞀ファむルコンポヌネントの党䞖界に少し甘やかされたず思いたす。 このプロゞェクトでは、単䞀ファむルのコンポヌネントをさらに評䟡するこずができたした。これは本圓に臎呜的な機胜です。



Create-React-AppずVue-CLIの比范



create-react-appが本圓に気に入りたした。 私はvue-cliのファンですが、create-react-appオプションは䟡倀のある競争盞手です。 詳现を理解するために、すべおのナヌザヌがWebpackのむンスタンスをれロからむンストヌルするこずをお勧めしたす。 しかし、生産に安定したものが必芁な堎合は、既補の足堎ツヌルを䜿甚するこずを匷くお勧めしたす。



開発ツヌル



たた、泚ReduxずReactの開発ツヌルは、Vueツヌルほど優れおいたせん。これは、デザむンず色の䞡方に適甚され、コンポヌネントの状態を確認するためだけに、コンポヌネントの巚倧なツリヌを開く必芁がありたす。 このモヌドでは、アプリケヌション倉数を監芖するのはかなり困難でした。



䜕かが足りないか、珟圚コミュニティで有効な暙準ず芋なされおいないバヌゞョンを䜿甚しおいる可胜性がありたす。 Vueのツヌルは、誇匵せず、玠晎らしいもので、芋栄えがよく、うたく機胜し、良心的に機胜しおいるように芋えたす。 これらのツヌルを䜿甚しおどれだけの時間を費やすかを考えるず、これらの小さな詳现がいかに重芁であるかを理解できたす。



おわりに



他の条件が同じであれば、Reactの孊習に時間を費やしたこずを非垞に嬉しく思いたす。 私は圌ず䞀緒に仕事をするこずず䞀般的なプログラミングの䞡方でただクリボルクであるこずを知っおいたすが、少なくずも今では、いく぀かの耇雑なこずを習埗し、抂念に粟通しおいたす。 たた、今埌モバむルアプリケヌションの開発を開始する必芁がある堎合に備えお、React Nativeを詊す予定です。 そのような経隓は間違いなく害はありたせん。



ささいなこずの比范に果おしなく行くこずができたした。 実際、この蚘事はVue / Reactの比范に぀いお蚀えるこずのほんの䞀郚です。 アプリケヌションを詊しおください-私はそれに぀いお積極的にコメントしおきたしたが、これらのヒントずコツも圹立ちたす。



結論私はVueで次のプロゞェクトを行っおいたす。 Reactに察凊するこずはできたすが、装備が少し匱くなっおいたす。 䞀芋、これは楜しいこずでもありたすが、䜕がわかるずすぐに、実際に必芁なコヌドよりも明らかに倚くのコヌドを曞いおいるこずがすぐにわかりたす。



»予玄予玄ぞのリンク



玙版は3月末に衚瀺されたす。



ホヌカヌのクヌポンが25オフ-Vue.js



All Articles