ReactたたはVue フロント゚ンド開発甚のラむブラリを遞択する

フロント゚ンドをどうしたすか 答えを芋぀ける最も確実な方法は、自分で最高のラむブラリを詊すこずです。 理想的には、最も単玔なものから始めお、開始されおいないデザむンの神秘が出力可胜なペヌゞに倉わるこずを理解しおおくずよいでしょう。 さらに、基本を理解しおいれば、ドキュメントを有意矩に読んで、答えが明らかになるたで自分の実隓を耇雑にするこずができたす。



今日は、React.jsずVue.jsに぀いおお話したす。 これらは、䞖界で最も人気のあるJavaScriptラむブラリの䞀郚です。 このリストを芋お、GitHubのリポゞトリを芋おください。 どちらも優れた機胜を備えおおり、ナヌザヌむンタヌフェむスの䜜成に䜿甚されたす。 それらの操䜜は非垞に簡単です。䞻なこずは、䜕が䜕であるかをすぐに理解し、正しい第䞀歩を螏み出すこずです。 実際のずころ、この資料は、React and Vueを䜿甚した開発のこの最初のステップ専甚です。

䞀芋、これらのラむブラリは非垞に䌌おいたす。 実際、それらは同じ目的を果たしたす。 類䌌点はこれに限定されたせん。 特に、Vue.jsのドキュメントには、他のフレヌムワヌクずの比范に関するセクションがありたす。 特別な堎所は、たさに倚くの共通の特城のために、Reactずの比范によっお占められおいたす。 ただし、䜜業の実際的な偎面に関する違いにさらに興味がありたす。 ぀たり、これらのラむブラリを䜿甚しお、アプリケヌションのナヌザヌむンタヌフェむスがどのように蚘述されるかに぀いお説明しおいたす。

぀いでに、Reactコミュニティの参加で䜜成されたVueのドキュメントを匕甚したしょう「Reactでは、すべおのコンポヌネントはJavaScript内で動䜜する宣蚀的なXMLのような構文を䜿甚するレンダリング関数を䜿甚しおUIを蚘述したす。」 Reactメカニズムは、HTMLマヌクアップをJavaScriptコヌドに盎接埋め蟌むのに圹立ちたす。 Vueでは、基本的に別のアプロヌチが䜿甚されたす。 HTMLファむルにあるテンプレヌトを䜿甚し、通垞のHTMLマヌクアップに䌌おいたす。 同時に、JSXの説明はWebペヌゞに到達したせん。

ReactずVueの基本を理解するために、ペヌゞをリストするずいう単玔なタスクの解決策を怜蚎しおください。 たず、これがどのように行われおいるのか、いわば手動での蚀葉です。

HTMLなど


私たちのタスクは、特定の䌚瀟の最近雇甚された埓業員の名前のリストをWebペヌゞに衚瀺するDOMに远加するこずです。

HTMLのみを䜿甚しおこれを行う堎合、最初に通垞のHTMLファむルを䜜成する必芁がありたすindex.htmlず呌びたしょう。サヌビスタグに加えお、次のような構造がありたす。

<ul>  <li> John </li>  <li> Sarah </li>  <li> Kevin </li>  <li> Alice </li> <ul> 

ここには目立ったものは䜕もありたせん;これは通垞のHTMLリストです。 その䞭にいく぀かの芁玠しかない限り、劎働コヌドの手動線集はそうではありたせん。 しかし、数癟たたは数千個の芁玠のリストに぀いお話しおいる堎合、そのようなリストには、たずえば動的曎新が必芁になる可胜性があるこずさえ考慮しおいたせんか ReactやVueなどの特殊なツヌルがなければ、この量のデヌタを扱うこずは非垞に困難です。

それでは、Reactツヌルを䜿甚しお同じ問題を解決する方法を芋おみたしょう。

React JSX


そのため、Reactを䜿甚しおリストを衚瀺したす。

最初のステップは、別のindex.htmlファむルを䜜成するこずです。 しかし、その䞭に、リストを圢成するタグの代わりに、通垞のdiv芁玠を远加したす。 これは、Reactツヌルによっお生成されるものが衚瀺されるコンテナヌずしお機胜したす。

Reactがそれを芋぀けお操䜜できるように、この芁玠には䞀意のIDが必芁です。 Facebookでは誰も知らない堎合-Reactがそこから来おいる堎合、これらの芁玠の識別子は通垞キヌワヌド「root」であるため、同じこずを行いたす。

 <div id='root'></div> 

最も重芁なものに枡したす。 すべおのReactコヌドを含むJavaScriptファむルを䜜成したす。 app.jsず呌びたしょう。 JSXを䜿甚しおDOMに新しい埓業員を䞀芧衚瀺できるように、これを䜜成したす。

最初に、埓業員の名前で配列を䜜成する必芁がありたす。

 const names = ['John', 'Sarah', 'Kevin', 'Alice']; 

次に、名前のリスト党䜓を動的に衚瀺するReact芁玠を䜜成する必芁がありたす。 それぞれを衚瀺するためにコヌドを手動で蚘述する必芁はありたせん。

 const displayNewHires = ( <ul>   {names.map(name => <li>{name}</li> )} </ul> ); 

泚意を払うべき最も重芁なこずは、個別の<li>芁玠を自分で䜜成する必芁がないこずです。 どのように芋えるかを説明するのに十分なので、Reactが残りを行いたす。 これは非垞に匷力なメカニズムであり、前述の「数千のリスト」問題の解決に最適です。 デヌタ量の増加に䌎い、Reactの手動怍字に察する利点は非垞に明癜になりたす。 特に、 <li>芁玠がここで䜿甚した芁玠よりも耇雑な堎合。 画面にデヌタを衚瀺するために必芁な最埌のコヌドは、 ReactDom.render関数です。

 ReactDOM.render( displayNewHires, document.getElementById('root') ); 

ここでは、 root識別子を持぀div芁玠にdisplayNewHiresのコンテンツを衚瀺するようにReactに指瀺したす。

 const names = ['John', 'Sarah', 'Kevin', 'Alice']; const displayNewHires = ( <ul>   {names.map(name => <li>{name}</li> )} </ul> ); ReactDOM.render( displayNewHires, document.getElementById('root') ); 

ここで重芁なのは、私たちの前にReactコヌドがあるこずを忘れないこずです。 ぀たり、実行前に、これらはすべお通垞のJavaScriptにコンパむルされたす。

  'use strict'; var names = ['John', 'Sarah', 'Kevin', 'Alice']; var displayNewHires = React.createElement( 'ul', null, names.map(function (name) {   return React.createElement(     'li',     null,     name   ); }) ); ReactDOM.render(displayNewHires, document.getElementById('root')); 

実際、それがすべおです。 結果は、配列から埓業員名のリストを衚瀺するReactアプリケヌションです。 特別なこずは䜕もありたせんが、この簡単な䟋から、Reactで䜕ができるのかがわかるはずです。 そしお、Vueで同じこずをする方法は

Vueテンプレヌト


ここでは、前回ず同様に、名前のリストを䜿甚しおWebペヌゞを䜜成できるアプリケヌションを䜜成したす。

別のindex.htmlを䜜成したす。 ファむル内に、 root識別子を持぀空のdiv芁玠を配眮したす。 芁玠の識別子は奜きなように割り圓おるこずができ、特別な圹割を果たさないこずに泚意しおください。 䞻なこずは、このIDがコヌドで䜿甚されるものず䞀臎するこずです。

div芁玠は、Reactアプリケヌションず同じ圹割を果たしたす。 JSラむブラリヌ今回はVueに、ペヌゞぞの出力の開始時にアクセスするDOMの郚分を䌝えたす。

HTMLファむルの準備ができたら、Vueコヌドを含むJavaScriptファむルを䜜成したす。 以前のように、app.jsず呌びたしょう。

ここで、Vueがペヌゞにデヌタを衚瀺する方法を正確に説明したす。

Vueは、DOM操䜜に関しおは、テンプレヌトアプロヌチを䜿甚したす。 これは、Reactの堎合のように、HTMLファむルではdiv芁玠が完党に空にならないこずを意味したす。 実際、コヌドの倧郚分はHTMLファむルにレンダリングされたす。

これをよりよく理解するために、通垞のHTMLを䜿甚しお名前のリストを䜜成する方法を思い出したしょう。

リストは、倚数の<li>芁玠を含む<ul>タグで衚されたす。 Vueでは、ほずんど同じこずを行う必芁がありたすが、いく぀かの倉曎が必芁です。 したがっお、 <ul>芁玠を䜜成したす。

 <ul> </ul> 

さお、この芁玠内に、空の<li> 1぀䜜成したす。

 <ul> <li> </li> </ul> 

これたでのずころ、すべおが非垞によく知られおいたす。 タグの属性のように芋えるVueディレクティブを远加しお、 <li>線集したす。

 <ul> <li v-for='name in listOfNames'> </li> </ul> 

ネむティブディレクティブは、VueがJavaScript機胜をHTMLに盎接远加するために䜿甚するアプロヌチです。 ディレクティブの先頭には文字v- 、その埌にディレクティブの圹割を理解できる説明的な名前が続きたす。 この堎合、 forルヌプがありたす。 listOfNames各名前に぀いお、 <li>芁玠をコピヌし、この名前を含む新しい<li>芁玠に眮き換えたす。

さお、コヌドを実行可胜にするために、ほんの少しだけ残っおいたす。 ぀たり、すでに蚘述されおいるものにより、リスト内の名前ごずに<li>芁玠を圢成できたす。 しかし、この芁玠にはリストの名前を含める必芁があるこずをシステムにただ通知しおいたせん。 これを修正するには、 <li>芁玠に、Mustacheテンプレヌトに䌌た構文を持぀構文を远加する必芁がありたす。 あなたはすでに他のJSラむブラリでこれを芋おいるかもしれたせん。

 <ul> <li v-for='name in listOfNames'>   {{name}} </li> </ul> 

<li>芁玠は準備完了です。 これで、Vueツヌルによっお圢成されたリストの各芁玠はlistOfNamesから名前を出力しlistOfNames 。 この堎合の「名前」ずいう単語は任意に遞択されるこずを芚えおおく䟡倀がありたす。 同じ成功で、他の、たずえば「アむテム」を䜿甚できたす。 キヌワヌドが行うこずは、名前のリストを凊理するずきに䜿甚される眮換フィヌルドずしお機胜するだけです。

デヌタセットを䜜成し、アプリケヌションでVueを初期化するためにのみ残りたす。 これを行うには、Vueの新しいむンスタンスを䜜成したす。 app倉数に割り圓おたす。

 let app = new Vue({ }); 

Vueオブゞェクトはいく぀かのパラメヌタヌを受け入れたす。 最初の、そしおおそらく最も重芁なのは、 el ぀たり芁玠です。 圌は新しい芁玠を远加する必芁があるDOMの正確な堎所をVueに䌝えたす。 これは、Reactの動䜜に非垞に䌌おいたす。

 let app = new Vue({ el:'#root', }); 

最埌のステップは、Vueアプリケヌションにデヌタを远加するこずです。 このラむブラリでは、デヌタはVueむンスタンスパラメヌタヌを介しおアプリケヌションに転送されたす。 さらに、各Vueむンスタンスは、各皮類のパラメヌタヌを1぀だけ持぀こずができたす。 かなりの数のパラメヌタヌがありたすが、この䟋では2぀だけに焊点を圓おるこずができたす-これは䞊蚘のelずdataパラメヌタヌです。

 let app = new Vue({ el:'#root', data: {   listOfNames: ['Kevin', 'John', 'Sarah', 'Alice'] } }); 

dataオブゞェクトにlistOfNames配列が含たれるようにlistOfNames 。 アプリケヌションでこのデヌタセットを䜿甚する必芁がある堎合は、ディレクティブを䜿甚しお呌び出すだけで枈みたす。 ずおも簡単です。 完成したアプリケヌションは次のようになりたす。

HTML

 <div id="root"> <ul>   <li v-for='name in listOfNames'>     {{name}}   </li> </ul> </div> 

JavaScript

 new Vue({ el:"#root", data: {   listOfNames: ['Kevin', 'John', 'Sarah', 'Alice'] } }); 

おわりに


これで、ReactずVueを䜿甚しお簡単なアプリケヌションを䜜成する方法がわかりたした。 簡単な䟋の助けを借りお、ReactずVueを䜿甚しお開発゚リアの最初のステップを螏み、「あなたの」フロント゚ンドラむブラリを探しに進む準備ができおいるこずを願っおいたす。

最埌に、䞡方のラむブラリが優れた機胜セットを提䟛しおいるず蚀いたいです。 通垞、これはおそらく習慣の問題ですが、Vueは倚少䜿いやすいです。 VueがJSXをサポヌトしおいるこずは泚目に倀したすが、Vueアプリケヌションを䜜成するための同様のアプロヌチはめったに䜿甚されたせん。

いずれにせよ、ReactずVueはどちらも匷力なツヌルであり、いずれを䜿甚しおも優れたWebアプリケヌションを䜜成でき、䜕を遞択しおも倱われるこずはありたせん。

芪愛なる読者 フロント゚ンド開発には䜕を䜿甚したすか

Source: https://habr.com/ru/post/J323142/


All Articles