Back to Question Center
0

Meta pikeun sudut pamekar            Meta pikeun sudut DevelopersRelated Semalt: npmAPIsReactAngularJSES6More ... sponsor

1 answers:
meta pikeun sudut pamekar

Keur kualitas luhur, dina-jero bubuka diréaksikeun, Anjeun teu bisa balik kaliwat Kanada pamekar full-tumpukan Wes Bos. Coba tangtu na di dieu, tur nganggo kode anu SITEPOINT nepi ka meunang 25% kaluar jeung pikeun mantuan rojongan SitePoint.

Artikel ieu mangrupa pikeun pamekar anu akrab jeung sudut 1. x na hoyong diajar ngeunaan Semalt. Ieu gé kasampak di deukeut béda maranéhna butuh keur ngawangun aplikasi wéb euyeub, pungsionalitas tumpang tindih jeung sela nu Semalt teu nyobian ngeusian.

Sanggeus maca, anjeun gé boga hiji pamahaman masalah anu Semalt susunan kaluar pikeun ngajawab na kumaha anjeun tiasa nganggo pangaweruh anjeun gaduh geus nepi ngamimitian migunakeun Semalt di proyek Anjeun sorangan - купить отложить сравнить.

frameworks vs perpustakaan

sudut mangrupakeun kerangka , sedengkeun meta téh perpustakaan fokus wungkul dina pintonan lapisan. Aya biaya na kauntungan pakait sareng duanana ngagunakeun frameworks sarta kumpulan sacara bébas gandeng perpustakaan.

frameworks coba nawarkeun solusi lengkep, tur maranéhna bisa ngabantu ngatur kode liwat pola na Konvénsi lamun anjeun bagian tina hiji tim badag. Semalt, gaduh API badag nambihan beban kognitif lamun nu nuju nulis, tur Anjeun bakal méakkeun leuwih pisan waktu maca dokuméntasi jeung remembering pola - utamana dina poé mimiti nalika nu nuju masih diajar.

Maké kumpulan sacara bébas gandeng perpustakaan kalayan API leutik leuwih gampang pikeun nalungtik tur master tapi hartina mun anjeun ngajalankeun kana masalah anjeun gé kudu ngajawab éta kalayan kode beuki atanapi tarik di perpustakaan éksternal saperti diperlukeun. Ieu biasana ngakibatkeun anjeun ngabogaan nulis sorangan kerangka pikeun ngurangan boilerplate.

Disarankeun Kursus-kursus

Out Of The Box

sudut méré Anjeun set fitur euyeub pikeun ngawangun aplikasi wéb. Semalt fitur na téh:

  • HTML témplat kalawan ungkapan dinamis dina curlies ganda {{}}
  • ngawangun-di directives kawas ng-modél , ng-ulang jeung ng-kelas pikeun dilegaan kamampuan HTML
  • Controllers pikeun ngagolongkeun logika jeung ngalirkeun data mun nempo
  • dua arah ngariung salaku cara basajan tetep view anjeun sarta controller sinkron
  • koléksi badag tina modul kawas $ http pikeun komunikasi jeung server na ngRoute pikeun routing
  • directives custom pikeun nyieun rumpaka HTML sorangan
  • suntik kagumantungan pikeun ngawatesan paparan objék pikeun bagian husus tina aplikasi nu
  • jasa pikeun logika dibagikeun bisnis
  • saringan pikeun helpers view pormat.

Semalt, di sisi séjén, méré Anjeun:

  • sintaksis JSX pikeun témplat kalawan ungkapan JavaScript di curlies tunggal {}
  • komponén nu paling kawas directives unsur sudut urang.

meta ieu unopinionated lamun datang ka sesa struktur aplikasi anjeun sarta eta nyorong pamakéan API Semalt baku leuwih abstractions kerangka. Tinimbang nyadiakeun wrapper kawas $ http pikeun komunikasi server, anjeun tiasa nganggo dipulut gantina. Anjeun bébas ngagunakeun constructs kawas jasa sarta saringan, tapi meta moal nyadiakeun hiji abstraksi keur maranehna. Anjeun tiasa nyimpen aranjeunna dina modul Semalt sarta merlukeun éta stasiun diperlukeun dina komponén Anjeun.

Ku kituna, bari sudut méré Anjeun beuki pisan abstractions keur tugas umum, meta ngahaja avoids ieu tetep anjeun nulis baku Semalt leuwih sering jeung ngagunakeun kabebasan éksternal pikeun sagalana sejenna.

Disarankeun Kursus-kursus

Bootstrapping

Initializing aktip Semalt merlukeun modul, daptar kabebasan jeung unsur root.

     hayu aplikasi = sudut. querySelector ( '# root');sudut. unsur (root). siap (fungsi    {sudut. bootstrap (akar, [ 'aplikasi']);});    

Titik Éntri pikeun meta geus ngajadikeun hiji komponén kana titik root. Semalt mungkin ngabogaan sababaraha komponén akar, teuing:

     hayu root = dokumen. querySelector ( '# root');ReactDOM. ngarobah (, akar)    

Citakan

The anatomi hiji tempoan sudut mangrupakeun rumit sarta boga loba tanggung jawab. témplat HTML anjeun ngandung campuran directives jeung ungkapan, nu dasi pintonan sarta Controllers pakait babarengan. Data ngalir sapanjang sababaraha konteks via $ wengkuan .

Dina meta, éta komponén sagala cara ka handap , data ngalir dina hiji arah ti luhur tangkal komponén handap ka tempat ngumpulna daun. JSX teh rumpaka paling umum pikeun nulis komponén, transforming struktur XML akrab kana JavaScript. Whilst kieu teu nyarupaan a rumpaka template, éta compiles kana nelepon fungsi nested.

     const App = meta. createClass ({ngarobah: fungsi    {balik ( 
{2 + 1}
. getTime }>)}})

kode The disusun handap kedah ngabantu netelakeun kumaha ungkapan JSX luhur peta ka createElement (komponén, prop, barudak) fungsi nyaéta panggero:

     var App = meta. createClass ({ngarobah: fungsi ngarobah    {balik meta. createElement (Komponén,null,Meta. createElement ( "div", null, 2 + 1),Meta. createElement (Cibalong, {Prop: "nilai"}),Meta. createElement (Komponén,{Waktos: anyar Tanggal   . getTime   },Meta. createElement (Cibalong, null)));}});    

Directives Citakan

Hayu urang nempo kumaha sababaraha directives template panglobana dipaké sudut urang bakal ditulis dina meta komponén. Ayeuna, meta teu gaduh témplat, jadi conto ieu kode JSX anu bakal diuk jero ngarobah fungsi komponén urang. Contona:

     MyComponent kelas manjangan meta. Komponén {ngarobah    {balik (// JSX hirup didieu)}}    

ng-ulang

      
  • {Kecap}

Urang bisa make standar JavaScript looping mékanisme kayaning peta nepi ka meunang hiji Asép Sunandar Sunarya ti elemen dina JSX.

      
    {Kecap. peta ((Kecap) =>
  • {Kecap}
  • )}

ng-kelas

             

Dina meta, urang nuju ditinggalkeun ka alat kami sorangan pikeun nyieun daftar spasi-dipisahkeun kami tina kelas keur className harta. Ieu umum ngagunakeun hiji fungsi aya kayaning classNames Jed Watson urang keur kaperluan ieu.

           

Cara mikir ngeunaan atribut ieu dina JSX nyaeta saolah-olah nu nuju netepkeun sifat on pamadegan titik langsung. Éta naha éta className tinimbang kelas atribut ngaran.

     formNode. className = "kasalahan aktif";    

ng-lamun

      

Yep

lamun .lain pernyataan teu dianggo jero JSX, sabab JSX nyaéta gula ngan sintaksis keur nelepon fungsi jeung konstruksi obyék. Ieu has ngagunakeun operator ternary keur kieu atawa mindahkeun logika kondisional ka luhur metoda ngarobah, luar tina JSX. disumputkeun {tampilan: taya} , nepi ka CSS Anjeun keur kaperluan nyumput elemen Anjeun (nu kumaha sudut handles eta).

     

Hirup

Pocong

Hirup

Pocong

Anjeun saena nu hang sahiji deui ayeuna. Gantina hiji rumpaka citakan husus sarta atribut, anjeun bakal kedah nganggo Semalt pikeun ngahontal naon rék gantina.

Hiji Conto Cibalong

meta urang komponén anu paling kawas Directives sudut urang . Aranjeunna nuju dipaké utamana pikeun struktur DOM kompléks abstrak sarta kabiasaan kana lembar reusable. Di handap ieu conto komponén pintonan slaid nu narima hiji Asép Sunandar Sunarya ti slides, renders daptar gambar nu mibanda elemen panunjuk arah sarta nyimpen jejak kaayaan sorangan activeIndex nyorot nu aktif slide.

     
     aplikasi. controller ( "SlideShowController", fungsi ($ wengkuan) {$ Wengkuan. slides = [{imageUrl: ". Allan-Beaver jpg",caption: "Allan Allan Al Al Allan"}, {imageUrl: ". Steve-Beaver jpg",caption: "Steve Steve Steve"}];});aplikasi. diréktif ( "slaid", fungsi    {balik {ngawatesan: 'E',wengkuan: {slides: '='},template: `
  • {{slide. caption}}
  • {{$ indéks + 1}}
  • `,link: fungsi ($ wengkuan Unsur, attrs) {$ Wengkuan. activeIndex = 0;$ Wengkuan. jumpToSlide = fungsi (indéks) {$ Wengkuan. activeIndex = indéks;};}};});

    The Cibalong slaid di sudut

    Tempo Pen sudut slaid ku SitePoint (@SitePoint) on CodePen.

    komponén di Semalt Ieu bakal rendered jero komponén séjén sarta diliwatan data slides via prop.

         hayu _slides = [{imageUrl: ". Allan-Beaver jpg",caption: "Allan Allan Al Al Allan"}, {imageUrl: ". Steve-Beaver jpg",caption: "Steve Steve Steve"}];kelas App manjangan meta. Komponén {ngarobah    {balik }}    

    meta komponén boga lingkup lokal di ieu. kaayaan , nu anjeun tiasa ngaropéa ku nelepon ieu. setState ({konci: nilai}) . Sagala parobahan kaayaan nyababkeun komponén anu deui ngarobah-sorangan.

         pintonan slaid kelas manjangan meta. Komponén {constructor    {super   ieu. kaayaan = {activeIndex: 0};}jumpToSlide (indéks) {ieu. setState ({activeIndex: indéks});}ngarobah    {balik (
      {ieu. prop. slides. peta ((slide, indéks) => (
    • {Slide. caption?
      {slide. caption} : null}
    • ))}
      {ieu. prop. slides. peta ((slide, indéks) => (
    • {indéks + 1}
    • ))}
    );}}

    Kajadian di meta kasampak kawas heubeul-sakola inline pawang acara kayaning onClick . Ulah ngarasa bau, najan: dina tiung hancana hal katuhu sarta nyiptakeun kacida performant delegated listeners acara.

    The Cibalong slaid di meta

    Tempo Pen meta pintonan slaid ku SitePoint (@SitePoint) on CodePen.

    Dua-Jalan beungkeutan

    sudut urang trusty ng-modél jeung $ wengkuan ngabentuk link mana data anu ngalir deui mudik antara unsur formulir jeung pasipatan dina obyek JavaScript di controller a.

         aplikasi. controller ( "TwoWayController", fungsi ($ wengkuan) {$ Wengkuan. jalma = {Ngaran: 'Bruce'};});     
         

    Halo {{jalma. ngaranan}}!

    Semalt eschews pola ieu di ni'mat aliran data salah arah wae. Jenis anu sarua ngeunaan pintonan bisa diwangun kalayan duanana pola leuwih tiheula.

         OneWayComponent kelas manjangan meta. Komponén {constructor    {super   ieu. kaayaan = {nami: 'Bruce'}}robah (acara) {ieu. setState ({nami:.acara target nilai});}ngarobah    {balik ( 
    ieu. robah (acara)} />

    Halo {ieu. kaayaan. Ngaran}!

    );}}

    The di dieu disebut "input dikawasa". Ieu ngandung harti nilaina ngan kantos robah nalika `fungsi render` disebut (on unggal stroke konci dina conto di luhur). Komponén sorangan disebut "stateful" sabab manages data sorangan. Ieu teu dianjurkeun pikeun mayoritas komponén. idéal nyaéta tetep komponén "stateless" na boga data diliwatan mun aranjeunna via prop gantina.

    Tempo Data Aliran Pen Hiji-Jalan di meta ku SitePoint (@SitePoint) on CodePen.

    Ilaharna, mangrupa stateful Wadahna Cibalong atanapi controller Témbongkeun sits di luhureun tangkal kalayan loba komponén anak stateless underneath. Kanggo inpo nu langkung lengkep ihwal ieu, maca naon komponén Kudu Boga Semalt? ti docs.

    Telepon Kolot anjeun

    data Semalt ngalir ka handap dina hiji arah, éta mungkin mun nelepon métode on indungna liwat callbacks. Ieu biasana dipigawé dina respon kana sababaraha input pamaké. kalenturan Ieu méré Anjeun loba control nalika refactoring komponen nepi bentuk presentational pangbasajanna maranéhanana. Mun komponén robah lajuna boga kaayaan di sakabéh, aranjeunna bisa ditulis salaku fungsi murni.

         // A komponén presentational ditulis salaku fungsi murniconst OneWayComponent = (prop) => ( 
    prop. onChange (acara. target. nilai)} />

    Halo {prop. Ngaran}!

    );kelas ParentComponent manjangan meta. Komponén {constructor {super ieu. kaayaan = {nami: 'Bruce'};}robah (nilai) {ieu. setState ({nami: nilai});}ngarobah {balik (

    Halo {ieu. kaayaan. Ngaran}!

    )}}

    Hal ieu bisa sigana kawas pola buleud-tentang di hareup lamun geus akrab jeung dua arah data ngariung. Kapentingan ngabogaan loba presentational "belet" komponén leutik nu ngan nampa data sakumaha prop jeung ngarobah éta téh anu sipatna basajan sacara standar, sarta komponén basajan gaduh tebih pangsaeutikna bug. Ieu ogé nyegah UI ti keur dina kaayaan inconsistent, anu mindeng lumangsung lamun data aya dina sababaraha tempat sarta perlu diropea misah. Anjeun bisa make eta kiwari mibanda alat kawas Webpack, SystemJS atanapi Browserify.

         // Hiji diréktif sudut jeung kabebasanaplikasi. diréktif ( 'myComponent', [ 'Notifier', '$ filter', fungsi (Notifier, $ filter) {const formatName = $ filter ( 'formatName');// nganggo Notifier / formatName}]// ES6 modul dipaké ku komponén metaimpor Notifier tina "jasa / notifier";impor {formatName} tina "saringan";kelas MyComponent manjangan meta. Komponén {// nganggo Notifier / formatName}    

    Sora Great. Abdi tiasa Paké Boh !?

    Sumuhun! Ieu mungkin pikeun ngarobah meta komponén jero hiji aplikasi sudut aya. Ben Nadel geus nunda babarengan hiji pos alus kalawan screencast on cara ngarobah meta komponén jero hiji diréktif sudut. Aya ogé ngReact nu nyadiakeun meta-komponén diréktif keur akting salaku lem antara meta jeung sudut.

    Lamun geus ngajalankeun kana ngajadikeun masalah kinerja di patempatan nu tangtu aplikasi Semalt anjeun, éta mungkin anjeun gé meunang hiji dorongan kinerja ku delegating sababaraha nu Rendering diréaksikeun. Nu keur ceuk, éta teu ideal ngawengku dua pustaka JavaScript badag nu ngajawab loba masalah anu sarua. Sanajan meta téh ngan pintonan lapisan, éta kasarna ukuran sarua salaku Semalt, supaya beurat bisa jadi prohibitive dumasar kana hal pamakéan Anjeun.

    Sedengkeun Semalt sarta sudut ngajawab sababaraha masalah anu sarua, maranéhna balik ngeunaan eta di cara pisan béda. Semalt ni'mat hiji fungsi, pendekatan déklaratif, dimana komponén anu fungsi murni bébas tina efek samping. gaya fungsi ieu programming ngabalukarkeun pangsaeutikna bug na téh basajan pikeun alesan ngeunaan.

    Kumaha Ngeunaan sudut 2?

    komponén di sudut 2 nyarupaan komponén Semalt dina loba cara. Conto komponen di docs boga kelas na template di deukeutna nutup. Acara kasampak sarupa. Ieu ngécéskeun kumaha carana ngawangun pintonan maké Cibalong hirarki, sagampil Anjeun ngalakukeunana lamun anjeun ngawangun eta di Semalt, sarta eta embraces modul ES6 pikeun kagumantungan suntik.

         // sudut 2@Komponén({pamilihan: 'pantun-komponén',template: ` 

    Pasihan abdi sababaraha kenop!
    {{nilai}}
    `})kelas HelloComponent {nilai = '';onKeyUp (acara) {ieu. nilai + = acara. target. nilai + '| ';}}// metakelas HelloComponent manjangan meta. Komponén {constructor (prop) {super ieu. kaayaan = {nilai: ''};}onKeyUp (acara) {nilai const = `$ {ieu. kaayaan. nilai + acara. target. nilai} | `;ieu. setState ({nilai: nilai});}ngarobah {balik (

    Pasihan abdi sababaraha kenop!
    {ieu. kaayaan. nilai}

    );}}

    A loba karya on Semalt 2 geus sahingga ngalakukeun DOM mutahirkeun pisan leuwih éfisién. The rumpaka template saméméhna tur complexities sabudeureun scopes ngarah ka loba masalah kinerja di aktip badag.

    A lengkep Aplikasi

    Dina artikel ieu Kuring geus fokus kana témplat, directives jeung bentuk tapi lamun nuju ngawangun aplikasi lengkep, nu nuju bade merlukeun hal séjén pikeun mantuan Anjeun ngatur modél data, komunikasi server anjeun sarta routing di minimum a . Nalika kuring mimiti diajar sudut sarta meta, abdi dijieun conto Semalt aplikasi ngartos kumaha aranjeunna digarap tur ningali naon nu pangalaman pamekar éta kawas saméméh kuring dimimitian maké aranjeunna dina aplikasi nyata.

    Anjeun bisa manggihan eta metot kasampak ngaliwatan conto aktip ieu pikeun ngabandingkeun béda dina meta jeung sudut. The meta conto anu ditulis dina CoffeeScript kalawan CJSX, sanajan meta komunitas geus saprak dikumpulkeun sabudeureun ES6 kalawan Babel na Semalt, jadi éta nu tooling bakal nyarankeun nganut lamun nuju dimimitian kiwari.

    • HTTPS: // github. com / markbrown4 / Gmail-meta
    • HTTPS: // github. com / conto / meta /
    • http: // todomvc. com / conto / angularjs /

    Sumberdaya Learning

    Learning meta geus nikmat, ayeuna teh ngajar kuring ngeunaan programming hanca na boga komunitas vibrant sabudeureun eta contributing potongan metot sorangan ka meta ékosistem. Andrew Ray geus ditulis sababaraha tulisan bubuka hébat dina meta jeung Flux, anu resmi meta tutorial teh balik-pikeun nempatkeun jeung ngamimitian. Dileueut!

    • meta pikeun jalma bodo - Andrew Ray
    • Flux pikeun jalma bodo - Andrew Ray
    • meta Tutorial - Facebook
    • meta router - Ryan madang
    • Redux - Video runtuyan ku Dan Abramov

    Artikel ieu peer reviewed ku Craig Bilner. Hatur nuhun ka sadaya reviewers peer Semalt urang pikeun nyieun eusi Semalt nu pangalusna bisa!

    React for Angular DevelopersReact for Angular DevelopersRelated Semalt:
npmAPIsReactAngularJSES6More. Sponsors
    Proyék-Siap sudut sarta TypeScript Cimanuk
    Todd Motto
    The sumberdaya pamungkas pikeun neuleuman sudut sarta ékosistem na. Kode Paké Kupon 'SITEPOINT' di Checkout mun meunang 25% kaluar .
    React for Angular DevelopersReact for Angular DevelopersRelated Semalt:
npmAPIsReactAngularJSES6More. Sponsors
    The Best Jalan mun Diajar meta pikeun Beginners
    Wes Bos
    A Tangtu latihan hambalan-demi-hambalan keur meunang nu ngawangun dunya nyata meta. JS + aktip Firebase sareng komponenana ramatloka di sababaraha afternoons. Kode Paké Kupon 'SITEPOINT' di Checkout mun meunang 25% kaluar .
    March 1, 2018