Back to Question Center
0

React for Angular Developers- ի            React համար անկյունային DevelopersRelated Semalt: npmAPIsReactAngularJSES6 Ավելի ... Հովանավորներ

1 answers:
React for Angular Developers

React- ի բարձր որակի, խորը ներածության համար դուք չեք կարող անցնել Կանադայի լրիվ փաթեթավորող Wes Bos- ից: Այստեղ փորձեք իր ընթացքը եւ օգտվեք Code SITEPOINT ստանալու համար 25% զեղչ եւ օգնել SitePoint- ին:

Այս հոդվածը մշակողների համար, ովքեր ծանոթ են անկյունային 1. x- ին եւ ցանկանում են ավելին իմանալ Semalt- ի մասին: Մենք կանդրադառնանք տարբեր մոտեցումների վրա, որոնք ուղղված են հարուստ վեբ ծրագրեր կառուցելու, համընկնման ֆունկցիոնալությունը եւ թերությունները, որոնք Semalt- ը չի փորձում լրացնել:

16) Ընթերցելուց հետո դուք կունենաք հասկանալ այն խնդիրները, որոնք Սեմալտը սահմանում է լուծելու եւ ինչպես կարող եք օգտագործել այն գիտելիքները, որոնք արդեն իսկ սկսվել են Սեմալտը ձեր սեփական ծրագրերում:

Շրջանակներ vs գրադարաններ

անկյունային մի շրջանակ , իսկ React- ը գրադարանն է , որը կենտրոնացած է միայն տեսողական շերտով: Կան նաեւ ծախսեր եւ օգուտներ, որոնք կապված են թե շրջանակների եւ թե ազատորեն զուգորդված գրադարանների հետ:

Շրջանակները փորձում են ամբողջական լուծում առաջարկել, եւ նրանք կարող են օգնել կազմակերպել կոդով ձեւավորում եւ կոնվենցիաներ, եթե դուք մեծ թիմի կազմում եք: Սեմալտը, ունենալով մեծ API, ճանաչողական բեռ է ավելացնում, երբ դուք գրում եք, եւ դուք ավելի շատ ժամանակ կծախսեք կարդալու փաստաթղթերը եւ հիշելով նախշերով, հատկապես վաղ օրերին, երբ դուք դեռ սովորել եք:

Օգտագործելով փոքր API- ների հետ զուգակցված գրադարանների հավաքածու ավելի հեշտ է սովորել եւ տիրապետել, բայց դա նշանակում է, որ երբ դուք խնդիրներ եք վարում, դուք պետք է դրանք լուծեք ավելի կոդով կամ արտաքին գրադարաններում: Սա սովորաբար հանգեցնում է այն հանգամանքին, որ դուք պետք է գրեք ձեր սեփական շրջանակ, որպեսզի նվազեցնեք կաթսա:

Առաջարկվող դասընթացներ

Ներսից դուրս

Անկյունները Ձեզ հնարավորություն են տալիս ստեղծել հարուստ առանձնահատկություն վեբ հավելվածներ կառուցելու համար: Semalt- ի առանձնահատկությունները.

  • HTML կաղապարներ դինամիկ արտահայտություններով կրկնակի curlies {{}}
  • ներկառուցված դիրեկտիվները HTML- ի
  • հնարավորությունը ընդլայնելու համար ng-model , ng- կրկնել եւ ng-
  • տրամաբանության խմբավորման եւ տվյալների փոխանցման վերահսկիչները
  • երկկողմանի պարտադիր, որպես դիտարկման եւ վերահսկիչի համաժամեցման մի պարզ միջոց
  • սերվերի հետ հաղորդակցվելու համար $ http եւ երթուղային գծի ngRoute
  • մաքսային դիրեկտիվներ ստեղծել ձեր սեփական HTML շարահյուսություն
  • կախվածության ներարկում, օբյեկտների առարկայի բացահայտման սահմանափակման դիմումը
  • ծառայությունների ընդհանուր բիզնես տրամաբանության համար
  • ֆիլտրերի դիտման ձեւաչափման օգնականներ:
16) Սեմալտը, մյուս կողմից, տալիս է ձեզ. 15)
  • JSX- ի սինթետիկ սխեմաների համար, JavaScript- ի արտահայտություններով, միակ curlies {}
  • բաղադրիչները, որոնք առավել շատ են անկյունային տարրերի հրահանգները:
16) React- ը անփոփոխ է, երբ խոսքը վերաբերում է ձեր հավելվածի մյուս կառուցվածքին, եւ այն խրախուսում է սեմալտի ստանդարտ API- ների օգտագործումը շրջանակային բաժանմունքների վրա: Սարքի հաղորդակցության համար $ http- ի նման փաթաթելու փոխարեն, կարող եք օգտագործել fetch փոխարեն: Դուք ազատ եք օգտագործել այնպիսի կառուցվածքներ, ինչպիսիք են ծառայությունները եւ ֆիլտրերը, սակայն Ռեակտիվը նրանց համար չի վերաբերի: Դուք կարող եք դրանք տեղադրել Semalt մոդուլներ եւ պահանջել դրանք, ինչպես նաեւ անհրաժեշտ է ձեր բաղադրիչները:

Այնպես որ, երբ անկյունները տալիս են ավելի շատ առարկաներ ընդհանուր խնդիրներ ունենալու համար, React- ը կանխամտածված կերպով խուսափում է, որպեսզի ձեզ ավելի հաճախակիորեն սեմալիստ գրել եւ ամեն ինչի համար օգտագործել արտաքին կախվածությունը:

Առաջարկվող դասընթացներ

Bootstrapping

Semalt- ի հավելվածների մեկնարկը պահանջում է մոդուլ, կախվածության ցանկ եւ արմատային տարր:

     թույլ տվեք app = անկյուն - free logo samples designs. querySelector ('# արմատ');անկյունային: տարր (արմատ): պատրաստ (function    {{անկյունային: bootstrap (արմատ, ['հավելված']);});    

React- ի մուտքի կետը բաղադրիչ է արմատային հանգույցի մեջ: Սեմալտը նույնպես կարող է ունենալ բազմաթիվ արմատային բաղադրիչներ եւս.

     թող արմատը = փաստաթուղթը: querySelector ('# արմատ');ReactDOM- ը: մատուցել (, արմատ)    

Կաղապարներ

16) անկյունային տեսակետի անատոմիա բարդ է եւ շատ պարտականություններ ունի: Ձեր HTML ձեւանմուշները պարունակում են ուղեցույցների եւ արտահայտությունների միաձուլումը, որոնք կապում են տեսքը եւ դրանց հետ կապված վերահսկողները: Տվյալների հոսքը բազմաբնույթ համատեքստերում $ scope միջոցով:

React- ում այն ​​բաղադրիչներից է ամբողջ ճանապարհը , բաղադրիչի ծառի վերեւից մինչեւ տերեւային հանգույցների տվյալների հոսքերը մեկ ուղղությամբ: JSX- ը ամենատարածված սցենարն է, բաղկացուցիչ կազմելու համար, փոխակերպելով ծանոթ XML կառուցվածքի մեջ JavaScript: Մինչդեռ սա նման է տառատեսակի շարադրանքին, այն կազմված է ներկառուցված գործառույթների զանգերին:

     const App = React. createClass ({render: function    {վերադարձ (<Բաղադրիչ> 
{2 + 1}
<Բաղադրիչի ժամանակը = {նոր Ամսաթիվ ): getTime }><Բաղադրիչ />)}})

Ստորեւ բերված կազմված կոդը պետք է հստակեցնի, թե ինչպես է JSX- ի արտահայտությունները քարտեզի վրա createElement (component, props, children)

     var App = React. createClass ({render: function render    {վերադարձեք React. createElement (Բաղադրիչ,դատարկ,React. createElement ("div", null, 2 + 1),React. createElement (բաղադրիչ, {prop: "արժեք"}),React. createElement (Բաղադրիչ,{time: new Ամսաթիվ   : getTime   },React. createElement (բաղադրիչ, null)));}});    

Կաղապար հրահանգներ

Եկեք նայենք, թե ինչպես են ձեւափոխված բաղադրիչներում գրված մի քանի անկյունագծի օգտագործած կաղապարների հրահանգները: Հիմա, React- ն չունի շաբլոններ, ուստի այս օրինակները JSX կոդն է, որը նստած է բաղադրիչի render գործառույթի ներսում: Օրինակ `

     դասը MyComponent տարածում React. Բաղադրիչ {render    {վերադարձ (// JSX- ն այստեղ է ապրում)}}    

նգ-կրկնում

      
  • {word}

Մենք կարող ենք օգտագործել ստանդարտ JavaScript- ի looping մեխանիզմներ, ինչպիսիք են քարտեզ ստանալու զանգվածի տարրեր JSX- ում:

      
    {խոսք. քարտեզ ((բառը) =>
  • {word}
  • )}

ng-class

      

React- ում, մենք թողնում ենք մեր սեփական սարքավորումները `դասի դասի դասակարգի ստեղծելու համար className սեփականության համար: Դա սովորական է, օգտագործելու համար գոյություն ունեցող գործառույթ, ինչպիսիք են Jed Watson- ի դասի անունները այս նպատակով:

           

JSX- ում այս հատկանիշների մասին մտածելու ձեւն այն է, կարծես ուղղակիորեն այդ հատկությունների վրա հատկություններ եք ստեղծում: Ահա թե ինչու է այն className , քան 46 դասի հատկանիշի անվանումը:

     formNode. className = "ակտիվ սխալ";    

ng-if

      

Yep

եթե .այլ հայտարարությունները չեն գործում JSX- ի ներսում, քանի որ JSX- ն պարզապես գործառնական զանգերի եւ օբյեկտների շինարարության համար սինթետիկ շաքար է: Տիպիկ օպերատորների համար դա սովորաբար օգտագործվում է կամ պայմանական տրամաբանությունը ցուցադրման մեթոդի վերին անցնելու համար, JSX- ից դուրս. թաքնված {դրսեւորում `ոչ մեկը} , ձեր սցենարով ձեր տարրերը թաքցնելու նպատակով (որը, ինչպես է անկյունային բռնակները):

     

Ապրել

Ghost

Ապրել

Ghost

Դու հիմա կախված ես: Հատուկ ձեւանմուշների շարադրանքի եւ ատրիբուտների փոխարեն, դուք պետք է օգտագործեք «Սեմալտը», որպեսզի հասնեք այն, ինչ ցանկանում եք:

Օրինակ բաղադրիչ

Ռեակցիայի բաղադրիչները առավել նման են անկյունների հրահանգներին : Դրանք հիմնականում օգտագործվում են վերացական բարդ DOM կառուցվածքների եւ վարքագծի մեջ `օգտագործելու համար: Ստորեւ բերված է սլայդերի բաղադրիչի օրինակ, որը ընդունում է սլայդների զանգվածը, ցուցադրում է նավիգացիոն տարրերով նկարների ցանկ եւ հետեւում է իր ակտիվ ակտիվ ինդեքս վիճակին, ակտիվ սլայդը լուսաբանելու համար:

     
     ծրագիր: վերահսկիչ ("SlideShowController", գործառույթ ($ scope) {$ ծավալը: slides = [{imageUrl: "allan-beaver. jpg",Ալլան Ալլան Ալ Ալ Ալլան "}, {imageUrl: "steve-beaver. jpg",վերնագիր. «Սթիվ Սթիվ Սթիվ»}];});հավելված: դիրեկտիվ ("slideShow", function    {{վերադարձ {սահմանափակ: 'E',շրջանակ `{սլայդներ `'='},Կաղապար
  • <գործիչ>
    {{slide. վերնագիր}}
  • {{$ index + 1}}
`,հղում: function ($ scope, element, attrs) {$ ծավալը: activeIndex = 0;$ ծավալը: jumpToSlide = ֆունկցիա (ինդեքս) {$ ծավալը: activeIndex = ինդեքս;};}};});

Slideshow բաղադրիչը անկյունային

Տեսեք Գրիչի անկյունային սլայդերը SitePoint (@SitePoint) կողմից CodePen- ում:

Սեմալտում այս բաղադրիչը կներկայացվի մեկ այլ բաղադրիչի ներսում եւ փոխանցեց սլայդների տվյալները ստվարաթղթերով:

     թող _slides = [{imageUrl: "allan-beaver. jpg",Ալլան Ալլան Ալ Ալ Ալլան "}, {imageUrl: "steve-beaver. jpg",վերնագիր. «Սթիվ Սթիվ Սթիվ»}];դասը տարածում է Reaction- ը: Բաղադրիչ {render    {վերադարձ }}    

Ռեակցիայի բաղադրիչները տեղական բնույթ են կրում : , որը դուք կարող եք փոփոխել զանգահարելով : setState ({key: value}) ): Պետության ցանկացած փոփոխություն բաղադրիչին վերարտադրում է:

     դասի SlideShow ընդլայնում React. Բաղադրիչ {constructor    {super   սա է: state = {activeIndex: 0};}jumpToSlide (ինդեքս) {սա է: setState ({activeIndex: index}));}render    {վերադարձ (
    {սա է: պահպանակներ: սլայդներ: քարտեզ ((slide, index) => (
  • <գործիչ>{ Սլայդ. վերնագիր:
    {slide. վերնագիր} : null}
  • ))}
    {սա է: պահպանակներ: սլայդներ: քարտեզ ((slide, index) => (
  • {index + 1}
  • ))}
);}}

Իրադարձությունները React- ում նման են հին դպրոցական ներգրավված միջոցառումների մշակողները, ինչպիսիք են onClick : Մի վատ զգալ, չնայած որ գլխարկի տակ դա անում է ճիշտը եւ ստեղծում բարձր կատարողական պատվիրակված իրադարձություն ունկնդիրներ:

Սլայդերի բաղադրիչը ռեակցիայի մեջ

Տեսեք Pen Thack SlideShow- ը SitePoint- ի կողմից (@SitePoint) CodePen- ում:

Երկկողմանի պարտադիր

անկյունային վստահելի ng-model եւ $ scope հղում է կատարում, որտեղ տվյալների հոսքը վերադարձվում է JavaScript օբյեկտի վրա ձեւի տարրերի եւ հատկությունների միջեւ հսկիչի մեջ:

     ծրագիր: վերահսկիչ ("TwoWayController", գործառույթ ($ scope) {$ ծավալը: անձ = {անուն: 'Bruce'};});     
     

Բարեւ {{մարդ. Անուն }}!

Սեմալտը շեղվում է այս օրինակից, փոխարենը միակողմանի տվյալների հոսքի օգտին: Նույն տեսակները կարելի է կառուցել երկու օրինակով:

     դասի OneWayComponent տարածում React. Բաղադրիչ {constructor    {super   սա է: պետական ​​= {name: 'Bruce'}}փոփոխություն (իրադարձություն) {սա է: setState ({name: event, target, value}));}render    {վերադարձ ( 
<մուտքային արժեք = {այս. պետություն: անունը} onChange = {(event) => this. փոփոխություն (իրադարձություն)} />

Բարեւ {այս. պետություն: Անուն }!

);}}

այստեղ կոչվում է «վերահսկվող մուտք»: Սա նշանակում է, որ դրա արժեքը երբեւէ փոփոխվել է, երբ «մատուցող» գործառույթը կոչվում է (վերը նշված օրինակում յուրաքանչյուր առանցքային ինսուլտի վրա): Բաղադրիչը իրեն կոչվում է «պետական», քանի որ այն ղեկավարում է իր սեփական տվյալները: Սա խորհուրդ չի տրվում բաղադրիչների մեծամասնության համար: Իդեալն այն է, որ բաղադրիչները պահպանվեն «քաղաքացիություն չունեցող» եւ դրանց փոխարեն ստացվեն տվյալներ փոխարեն :

Տեսեք Pen միակողմանի տվյալների հոսքը SitePoint- ի (@SitePoint) արձագանքը CodePen- ում:

16) սովորաբար, պետական ​​բեռնարկղային բաղադրիչ կամ վերահսկիչ տեսք, որը գտնվում է ծառի վերեւում, շատ անօթեւան երեխայի բաղադրիչների տակ: Այս մասին լրացուցիչ տեղեկությունների համար կարդացեք, թե ինչ բաղադրիչները պետք է կիսեն: փաստաթղթերից:

Զանգահարեք ձեր ծնողներին

Semalt- ի տվյալների հոսքը մեկ ուղղությամբ հոսում է, հնարավոր է անվանել մեթոդներ ծնողների հետ կապուղիների միջոցով: Սա սովորաբար կատարվում է ի պատասխան որոշ օգտագործողի մուտքագրման: Այս ճկունությունը ձեզ շատ վերահսկողություն է տալիս, երբ բաղադրիչները վերարտադրվում են իրենց ամենապարզ ներկայացման ձեւերով: Եթե ​​refactored բաղադրիչները ոչ մի պետություն չունեն, դրանք կարող են գրվել որպես մաքուր գործառույթներ:

     // ներկայացվող ներկայացման բաղադրիչ, որպես մաքուր ֆունկցիաconst OneWayComponent = (props) => ( 
<մուտքային արժեքը = {props. անունը} onChange = {(event) => props: onChange (միջոցառում, թիրախային արժեք)} />

Բարեւ {շարքը. Անուն }!

);դաս Պարենային բաղադրիչը տարածում է React. Բաղադրիչ {constructor {super սա է: state = {name: 'Bruce'};}փոփոխություն (արժեք) {սա է: setState ({name: value});}render {վերադարձ (

Բարեւ {այս. պետություն: Անուն }!

)}}

Սա կարող է թվալ, թե ինչպես կլոր-օրինակը նախեւառաջ, եթե դու ծանոթ ես երկկողմանի տվյալների պարտադիր: Օգտվելով բազմաթիվ փոքր ներկայացուցչական «դանդաղ» բաղադրիչներից, որոնք պարզապես ընդունում են որպես տվյալների պահեստներ եւ մատուցել դրանք այն է, որ նրանք ավելի պարզ են լռելյայնորեն, եւ պարզ բաղադրիչները ունեն հեռու ավելի քիչ bugs: Սա նաեւ խոչընդոտում է UI- ի անկայուն վիճակում լինելը, որը հաճախ տեղի է ունենում, եթե տվյալները գտնվում են բազմակի վայրերում եւ պետք է պահվեն առանձին:. Դուք կարող եք դրանք օգտագործել այսօր Webpack, SystemJS կամ Browserify գործիքով:

     // Անուղղակի հրահանգ, կախվածության հետհավելված: հրահանգ ('myComponent', ['Notifier', '$ filter', գործառույթը (Notifier, $ filter) {const formatName = $ ֆիլտր ('formatName');// օգտագործեք Notifier / formatName- ը}]// React բաղադրիչով օգտագործվող ES6 մոդուլներներմուծման ծանուցող «ծառայություններ / ծանուցող» -ից;ներմուծել {formatName} - ից "ֆիլտրեր";դասակարգ MyComponent տարածում React. Բաղադրիչ {// օգտագործեք Notifier / formatName- ը}    

հնչում է մեծ: Կարող եմ օգտվել երկուսն էլ:

Այո: Հնարավոր է React բաղադրիչները ներկայացնել գոյություն ունեցող անկյունային կիրառման մեջ: Բեն Նաելը մի լավ գրություն է պատրաստել, որը ցույց է տալիս, թե ինչպես պետք է ռեակտիվ բաղադրիչները ցուցադրեն անկյունային հրահանգով: Կա նաեւ ngReact, որը ապահովում է React եւ Angular- ի միջեւ սոսինձի գործածման համար արձագանքող բաղադրիչ :

Եթե Դուք առաջադրվել եք Սեմալտի դիմումի որոշ մասերում կատարելու խնդիրներ, ապա հնարավոր է, որ դուք կստանաք կատարողական խթանություն `որոշակի ցուցադրման հանձնարարելով React- ին: Ասվում է, որ իդեալական չէ երկու մեծ JavaScript գրադարանները, որոնք լուծում են միեւնույն խնդիրները: Թեեւ React- ը պարզապես տեսքային շերտ է, մոտավորապես նույն չափը, ինչպես Semalt, այնպես, որ քաշը կարող է արգելք հանդիսանալ ձեր օգտագործման դեպքում:

Քանի որ Semalt- ը եւ Angular- ը լուծում են նույն խնդիրները, նրանք շատ տարբեր ձեւերով են գնում: Semalt- ը նպաստում է ֆունկցիոնալ, հռչակավոր մոտեցմանը, որտեղ բաղադրիչները մաքուր գործառույթներ են, որոնք զերծ են կողմնակի ազդեցություններից: Ծրագրի այս ֆունկցիոնալ ոճը հանգեցնում է ավելի քիչ bugs եւ ավելի պարզ է հիմնավորելու համար:

Ինչպես անկյունային 2:

Անկյունային 2 բաղադրիչները նման են Սեմալտի բաղադրիչներին շատ ձեւերով: Փաստաթղթերի օրինակելի բաղադրիչները դասի եւ ձեւանմուշ ունեն մոտակայքում: Իրադարձությունները նման են: Այն բացատրում է, թե ինչպես պետք է կառուցել տեսակետներ, օգտագործելով բաղադրիչի հիերարխիա, ճիշտ այնպես, ինչպես դուք կստեղծեք այն Սեմալտում, եւ այն ընդգրկում է ES6 մոդուլների կախվածության ներարկումը:

     // անկյունային 2@Component ({ընտրիչ `բարեւ-բաղադրիչ,Կաղապար 

Ինձ տվեք մի քանի բանալի:
{{արժեքներ}}
`})դաս HelloComponent {values ​​= '';onKeyUp (իրադարձություն) {սա է: արժեքներ + = դեպք: թիրախը: արժեք + '| ';}}// Reactդաս HelloComponent- ը տարածում է React. Բաղադրիչ {կոնստրուկտոր (props) {super սա է: state = {values: ''};}onKeyUp (իրադարձություն) {const արժեքները = `$ {this. պետություն: արժեքներ + իրադարձություն: թիրախը: արժեք} | ';սա է: setState ({values: values));}render {վերադարձ (

Ինձ տվեք մի քանի բանալի:
{այս. պետություն: արժեքներ}

);}}

Սեմալիստի 2-ի մեծ աշխատանքը կատարում է DOM- ի թարմացումները ավելի արդյունավետ: Նախորդ կաղապարների շարադրանքն ու շրջակա միջավայրի տարածվածությունը խոշոր ծրագրերում առաջացրեցին բազմաթիվ կատարողական խնդիրներ:

Լրիվ դիմում

Այս հոդվածում ես կենտրոնացած եմ շաբլոնների, դիրեկտիվների եւ ձեւերի վրա, բայց եթե դուք ամբողջական ծրագիր եք պատրաստում, դուք պատրաստվում եք այլ բաներ պահանջել, որոնք կօգնեն կառավարել ձեր տվյալների մոդելը, սերվերի հաղորդակցությունը եւ երթուղիչը նվազագույն . Երբ ես առաջին անգամ իմացա անկյունային եւ ռեակցիայի մասին, ես ստեղծել եմ Semalt- ի օրինակ `հասկանալու, թե ինչպես են նրանք աշխատել եւ տեսնել, թե ինչ է մշակողի փորձը նման, երբ ես սկսեցի դրանք օգտագործել իրական ծրագրերում:

Կարող եք հետաքրքիր գտնել այդ օրինակների հավելվածների միջոցով, համեմատելու React եւ Angular- ի տարբերությունները: React օրինակը գրվում է CofScript- ում CJSX- ով, թեեւ React- ի համայնքն այն բանից հետո, երբ հավաքվել է ES6- ի վրա, Բաբելոն եւ Սեմալտը, այնպես որ գործիքը ես կներկայացնեմ, եթե ընդունեք այսօր:

  • https: // github. com / markbrown4 / gmail- արձագանքը
  • https: // github. com / օրինակներ / արձագանք /
  • http: // todomvc. com / օրինակներ / angularjs /

Ուսումնական ռեսուրսներ

Ուսումնասիրության ռեակցիան հաճելի էր, սովորեցրեց ինձ ավելի ֆունկցիոնալ ծրագրավորման մասին եւ ունի շուրջ վառ համայնք, որը նպաստում է ռեակտորի էկոհամակարգին սեփական հետաքրքիր նյութերի ստեղծմանը: Էնդրյու Ռեյը մի քանի մեծ ներածական գրառումներ է արձագանքել Ռեակցիայի եւ Հոսքի վրա, պաշտոնական Կրակոցների ձեռնարկը մեկնարկելու տեղն է: Վայելեք:

  • React համար հիմար մարդկանց - Andrew Ray
  • Խեղճը հիմար մարդկանց համար - Էնդրյու Ռեյ
  • React Tutorial - Ֆեյսբուք
  • React Router - Ռայան Ֆլորենցիա
  • Redux - Տեսահոլովակներ Դան Աբրամովի կողմից

Այս հոդվածը վերանայվել է Քրեյգ Բիլների կողմից: Շնորհիվ Semalt- ի բոլոր վերանայողների, Semalt- ի պարունակությունը լավագույնը դարձնելու համար դա կարող է լինել:

React for Angular DevelopersReact for Angular DevelopersRelated Semalt:
npmAPIsReactAngularJSES6More. Sponsors
Job-Ready Angular եւ TypeScript ուսուցում
Todd Motto
Հիմնական ռեսուրս, անկյունային եւ էկոհամակարգի սովորելու համար: Օգտագործեք կտրոնային կոդ 'SITEPOINT' դուրս գալուց 25% անջատել :
React for Angular DevelopersReact for Angular DevelopersRelated Semalt:
npmAPIsReactAngularJSES6More. Sponsors
Լավագույն ուղին սովորելու համար արձագանքելու համար
Ուես Բոս
Քայլ առ քայլ ուսումնական դասընթաց, որպեսզի դուք իրական աշխարհ ստեղծեք: React. js + Firebase հավելվածները եւ կայքի բաղադրիչները մի քանի օրվա ընթացքում: Օգտագործեք կտրոնային կոդ 'SITEPOINT' դուրս գալուց 25% անջատել :
March 1, 2018