MVC este o paradigmă foarte populară în dezvoltarea web-ului și a fost în jur de ceva timp. Cadrul React este o parte puternică a acestei trinități Model-View-Controller, deoarece se concentrează exclusiv pe Vizualizare. React este scris în JavaScript și creat de echipele de dezvoltare Facebook și Instagram.
React este folosit pe tot parcursul paginii web pentru a crea aplicații web rapide ușor de întreținut datorită modului în care structurile cadru React vizualizează codul stratului.
Pentru a ne face să începem, iată un exemplu simplu de React preluat din exemplele oficiale:
var HelloMessage = React.createClass (render: function () returBună ziua this.props.name; ); React.render (, document.getElementById ("container"));
Acest exemplu va face "Hello John" într-un JSX este o sintaxă asemănătoare XML / HTML care este folosită pentru a reda HTML din codul JavaScript. React transformă JSX în JavaScript nativ pentru browser și cu ajutorul instrumentelor oferite puteți transforma codul HTML al site-urilor existente în JSX! JSX face ca codul să se amestece ușor, deoarece se simte la fel ca și scrierea unui cod HTML nativ, dar din JavaScript. Combinat cu nodul, acest lucru face ca un flux de lucru foarte consistent. JSX nu este obligat să utilizeze React - puteți folosi simplu JS - dar este un instrument foarte puternic care facilitează definirea structurilor de arbori cu atribute și atribuirea atributelor, așa că recomand foarte mult utilizarea lui. Pentru a reda o etichetă HTML în React, trebuie doar să utilizați nume de etichete cu litere mici cu unele JSX cum ar fi: Există mai multe moduri de a utiliza React. Modul oficial recomandat este de la npm sau Facebook CDN, dar în plus, puteți clona de la git și construiți propriul. De asemenea, puteți utiliza setul de pornire sau puteți economisi timp cu un generator de schele de la Yeoman. Vom acoperi toate aceste metode pentru a avea o înțelegere deplină. Pentru cea mai rapidă modalitate de a merge, trebuie doar să includeți bibliotecile React și React Dom din CDN fb.me după cum urmează: Manualul React recomandă utilizarea React cu un sistem de module CommonJS, cum ar fi browser-ul sau webpack-ul. Manualul React recomandă, de asemenea, utilizarea funcției Acum veți putea vedea instalarea React în interiorul Trebuie să aveți nodul V4.0.0 + și npm v2.0.0 +. Puteți verifica versiunea dvs. de nod cu Vă recomandăm să utilizați managerul de versiuni nvm - node pentru a actualiza și selecta versiunea nodului dumneavoastră. Este ușor să achiziționați nvm prin simpla rulare: Acest script clonează repozitoriul NVM Dacă doriți să instalați manual Pentru a activa nvm cu această metodă, trebuie să-l surprindeți din shell cu: Notă: adăugați această linie la dvs. Cu nvm acum instalat, putem obține orice versiune de nod de care avem nevoie, și poate verifica lista de versiuni instalate cu Instalați cea mai nouă versiune și setați-o ca versiune prestabilită cu următoarele: Nodul este actualizat și npm este inclus în afacere. Acum sunteți pregătit să vă rog cu instalarea. Clonați repozitoriul cu git într-un director numit Odată ce ați repo clonat, puteți folosi acum În acest moment, a În primul rând, descărcați setul de pornire. Extrageți zipul și în rădăcină creați a În acest exemplu, React folosește Babel pentru a transforma JSX în JavaScript simplu prin Create a new file at Now all you need to do is reference it in your HTML, so open up the Actualizați pagina și veți vedea Notă: Unele browsere (de exemplu Chrome) nu reușesc să încarce fișierul dacă nu sunt difuzate prin HTTP, deci asigurați-vă că utilizați un server local. Vă recomandăm proiectul browsersync. De asemenea, puteți utiliza interfața de linie de comandă (CLI) pentru a vă transforma JSX-ul utilizând instrumentele din linia de comandă babel. Acest lucru este ușor de achiziționat prin intermediul comenzii npm: Acum că babel este instalat, să facem traducerea Acum dosarul Acum, că babel a generat Deci, pentru a revedea, cu babel putem încărca JSX direct în a Generarea acestei copii se face pe linia de comandă și, deoarece aceasta este o sarcină repetitivă, recomand foarte mult automatizarea procesului prin utilizarea Yeoman este un instrument foarte util pentru pornirea rapidă a proiectelor și cu un flux optim de lucru și configurarea instrumentului. Ideea este să vă permiteți să petreceți mai mult timp pe dezvoltare decât să configurați zona de lucru a proiectului și să minimalizați sarcinile repetitive (a se ține seama de acest lucru - RSI este motivul pentru care coderii opresc codarea). Deci, ca o bună practică, economisirea timpului cu instrumentele și implementarea D.R.Y în viața de zi cu zi va crește sănătatea și eficiența și vă va permite să vă petreceți mai mult timp făcând codul real decât configurația. Există o mulțime de schele acolo, care vin în multe arome pentru diferite scale de proiect. Pentru acest prim exemplu vom folosi Notă: Aceasta este o configurație fullstack, care este, probabil, overkill pentru orice proiecte mici. Motivul pentru care aleg această schelă este să vă dau un mediu complet setat, astfel încât să puteți vedea cum kitul de pornire se transformă într-o aplicație mai mare. Există un antet și un subsol și puteți vedea unde va merge o caracteristică de conectare și înregistrare a utilizatorului, deși nu sunt încă codificate în exemplu. Pentru a utiliza geamanul, mai întâi instalați-l și dacă nu aveți omologii necesari ai lui yeoman Acum instalați schela React cu: Acum, creați un director pentru proiectul dvs. și În cele din urmă, utilizați Yeoman va crea directoarele și fișierele necesare; veți putea vedea actualizări despre acest lucru în linia de comandă. Odată cu înființarea schelei, să construim proiectul nostru: În mod implicit începem depanare modul, și pentru a merge live doar adăugăm Veți vedea acum pornirea inițializării și inițierea pachetului web. Odată ce acest lucru se va face, veți vedea ieșirea din pachetul web care vă va oferi informații detaliate despre construirea și adresele URL de accesat. Accesați aplicația prin intermediul adreselor URL afișate la sfârșitul ieșirii, cu browserul implicit la adresa http: // localhost: 3000. Pentru a accesa interfața de administrare pentru sincronizarea browserului, accesați http: // localhost: 3001. Notă: Este posibil să fie necesar să deschideți portul serverului pentru portul de dezvoltare. Pentru utilizatorii ubuntu / debian cu Facebook oferă un instrument online dacă trebuie doar să convertiți un fragment al codului dvs. HTML în JSX. Pentru cerințe mai mari există un instrument Utilizarea acestuia prin linia de comandă este la fel de simplă: pentru că Să începem să lucrăm la crearea unei liste de sarcini de bază, astfel încât să puteți vedea cum funcționează React. Înainte de a începe, vă rugăm să vă configurați IDE-ul. Vă recomandăm să utilizați Atom. La promptul bash, instalați linterul pentru React prin apm: Notă: cea mai recentă versiune de Odată ce acest lucru se face, putem începe să creăm o listă de bază în cadrul schelei pe care am făcut-o în etapa anterioară cu Yeoman, pentru a vă arăta un exemplu de lucru al fluxului de date. Asigurați-vă că serverul dvs. a început cu Mai întâi de toate, există trei fișiere de șablon de jad furnizate în acest schelă. Nu le vom folosi pentru exemplul respectiv, deci începeți prin eliminarea Actualizarea este afișată instantaneu, fără a fi necesară actualizarea. Aceasta este configurația webpack și browsersync pe care schela le-a asigurat că va intra în vigoare. Apoi deschideți directorul de componente și creați un nou director: Acum, în interiorul De asemenea, încă în interiorul Acum, pentru a termina, trebuie să adăugăm câteva date pentru această listă. Vom face asta înăuntru Acum, când vom salva, webpack-ul va fi reconstruit și browsersync va afișa modificările din browser. Uitați-vă la codul sursă pentru a vedea cum a fost redat. Am folosit generatorul de schele Yeoman De aici am editat Interior Aici este important să rețineți că React solicită ca toate elementele iterate să aibă un identificator unic furnizat în cadrul Pentru a afișa lista vom include în interiorul Interior Acum Orice dată când trecem o valoare cu un atribut al unei componente, ea poate fi accesată prin intermediul În cele din urmă, un aspect important este acela că acest exemplu folosește componente extinse. Acest lucru are multe beneficii pentru structurarea semantică a codului. Dar ați putea dori să accesați o abordare mai mult oase goale, așa cum fac multe alte exemple. Deci, în loc de Ei bine, asta ne împachetează pentru această introducere la React. Acum ar trebui să înțelegeți bine următoarele: În cele ce urmează, vom discuta cum să folosim în continuare JSX, cum să lucrăm cu o bază de date ca o sursă de date persistentă, precum și cum funcționează React cu alte tehnologii web populare precum PHP, Rails, Python și .NET.Ce este JSX?
// className este folosit în JSX pentru atributul de clasă var fooDiv = ; // Render unde div # exemplul este substituentul nostru pentru inserarea ReactDOM.render (fooDiv, document.getElementById ('example'));
Instalarea React
Folosind CDN-ul Facebook
Instalare de la NPM
reacţiona
și reacționează-dom
pachete npm. Pentru a le instala în sistemul dvs., executați următoarele la linia de comandă a bazei de date din directorul de proiect sau creați un nou director și CD
la prima vedere.$ npm install - reacție reac-dom $ browserify -t babelify main.js -o bundle.js
node_modules
director.Instalare din sursa Git
dependenţe
nod versiune
și npm cu npm versiune
Actualizarea nodului prin NVM
curl - https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | bash
~ / .Nvm
și adaugă linia sursă la profilul dvs. (~ / .Bash_profile
, ~ / .Zshrc
sau ~ / .Profile
).NVM
puteți face acest lucru prin intermediul git
cu:git clone https://github.com/creationix/nvm.git ~ / .nvm && cd ~ / .nvm && git checkout 'git descrie --abbrev = 0 -
. ~ / .Nvm / nvm.sh
~ / .Bashrc
, ~ / .Profile
, sau ~ / .Zshrc
fișiere, respectiv pentru a fi obținute automat la conectare.Utilizarea NVM
lista de noduri
și cele disponibile cu nodul ls-remote
. Avem nevoie de o versiune mai mare decât 4.0.0 pentru a lucra cu React.$ nvm install 4.2.1 $ nvm alias implicit 4.2.1 implicit -> 4.2.1 (-> v4.2.1) $ nvm utilizează implicit Acum folosind nodul v4.2.1 (npm v2.14.7)
Construiți reacția din sursa Git
reacţiona
pe sistemul dvs. cu:git clone https://github.com/facebook/react.git
mormăit
pentru a construi React:# grunt-cli este nevoie de grunt; s-ar putea să aveți instalat deja, dar vă permite să vă asigurați cu următorul $ sudo npm instalare -g grunt-cli $ npm install $ grunt build
construi/
directorul a fost populat cu tot ce aveți nevoie pentru a utiliza React. Uită-te la / exemple
pentru a vedea câteva exemple de bază care funcționează!Utilizarea Kitului de pornire
helloworld.html
, adăugând următoarele:
.
Using a Separate JavaScript File
src/helloworld.js
and place the following code inside it:ReactDOM.render(
Hello, world!
, document.getElementById('example') ); helloworld.html
and load the script you just created using a script
tag with a text/babel
type attribute as so:
helloworld.js
fiind redat de babel.Transformare offline
$ sudo npm instalați --global babel
--global
sau -g
steagul pe scurt va instala pachetul babel la nivel global, astfel încât acesta să fie disponibil peste tot. Aceasta este o practică foarte bună cu utilizarea Nodului pentru mai multe proiecte și instrumente de linie de comandă.helloworld.js
tocmai am creat în pasul anterior. La promptul de comandă din directorul rădăcină în care ați dezarhivat setul de pornire, executați:$ babel src - vizionează --out-dir build
construi / helloworld.js
va fi generat automat ori de câte ori faceți o schimbare! Dacă sunteți interesat, citiți documentația Babel CLI pentru a obține o cunoaștere mai avansată.construi / helloworld.js
, care conține doar JavaScript direct, actualizați codul HTML fără etichete de script script activate de babel.
scenariu
etichetă prin Text / babel
atributul tip. Acest lucru este bun în scopuri de dezvoltare, dar pentru a merge la producție putem furniza un fișier JavaScript generat care poate fi stocat în cache pe mașina locală a utilizatorului.--ceas
steag. Sau puteți merge un pas mai departe și să utilizați WebPACK
și browsersync
pentru a vă automatiza complet fluxul de lucru pentru dezvoltare. Pentru a face acest lucru în cea mai ușoară cale posibilă, putem automatiza configurarea unui nou proiect cu un generator Yeoman.Instalarea cu Schele Yeoman
reacționează-fullstack
schele de la generatoarele Yeoman; puteți vedea o demonstrație a rezultatului final.folosire
înghiţitură
, umbrar
și groh-cli
, instalați-le astfel:$ sudo npm instalați -g yo bower grunt-cli gulp
$ sudo npm instalați -g generator-react-fullstack
CD
la el:$ mkdir reacție-proiect $ cd react-project
yo
comandați cu generatorul de schemă React-fullstack pentru a crea aplicația dvs. de reacție în interiorul directorului:$ yo reacționează - plin
$ npm start
-- eliberare
steagul, de exemplu. npm run - release
.UFW
, urmează următoarele instrucțiuni:$ ufw permite 3001 / tcp $ ufw permite 3000 / tcp
Conversia site-ului existent la JSX
NPM
pentru numele acela htmltojsx
. Descărcați-l cu:npm instalează htmltojsx
$ htmltojsx -c MyComponent existent_code.htm
htmltojsx
este un modul de nod, îl puteți utiliza, de asemenea, direct în cod, de exemplu:var HTMLtoJSX = necesită ('htmltojsx'); var convertor = nou HTMLtoJSX (createClass: true, outputClassName: "HelloWorld"); var output = converter.convert ('
Exemplu de listă
apm install linter linter-eslint react Instalarea linterului în /Users/tom/.atom/packages ✓ Instalarea linter-eslint în /Users/tom/.atom/packages ✓ Instalarea reacției la /Users/tom/.atom/packages ✓
Linter-eslint
făcea MacBook Pro foarte lent, așa că am dezactivat-o.npm start
, și acum să începem să facem niște schimbări.index.jade
fișier, deci este doar un fișier gol. După ce salvați fișierul, verificați browserul și ieșirea terminalului.$ cd componente $ mkdir UserList
listei de utilizatori
director, creați un package.json
fișier cu următoarele:"nume": "UserList", "versiune": "0.0.0", "privat": true, "main": "./UserList.js"
listei de utilizatori
director, creați UserList.js
fișier și adăugați următoarele:// Import React import Reacționează, PropTypes, Component de la "reacționează"; // Crearea clasei de componente UserList UserList extinde Component // Principala metodă de render este apelată în toate componentele pentru afișarea rendere () // Descărcați mai jos pentru a vedea obiectul din consola //console.log(this.props.data ); // Iterați datele furnizate aici var list = this.props.data.map (funcția (item) return
listă
); // Asigurați-o accesibilă pentru restul aplicației implicite pentru exportul de aplicații; Componente / ContentPage / ContentPage.js
. Deschideți acel fișier și setați conținutul după cum urmează:/ *! Activați Kitul de pornire Licența MIT | http://www.reactstarterkit.com/ * / import React, PropTypes, Component de la "reacție"; stiluri de import din './ContentPage.css'; import cu Stil de la "... / ... / decoratori / cu Stil"; import UserList din "... / UserList"; // Aici vom importa componenta UserList pe care am creat-o cu clasa @withStyles (stiluri) ContentPage extinde Component static propTypes = path: PropTypes.string.isRequired, content: PropTypes.string.isRequired, title: PropTypes.string,; statică contextTypes = onSetTitle: PropTypes.func.isRequired,; render () // Definiți unele date pentru lista var listData = [primul: 'Peter', ultima: 'Tosh', primul: 'Robert', ultima: 'Marley' , ultimul: "Wailer",]; this.context.onSetTitle (this.props.title); întoarcere (
This.props.title
// Utilizați componenta UserList ca JSX rezumat
reacționează-fullstack
pentru a începe o aplicație Web React pe baza kitului de pornire. Pentru o explicație suplimentară a fișierului și aspectului directorului, verificați citirea în kitul de reacție git repo.index.jade
fișierul a fost anulat și a început să se creeze propriul nostru ecran, făcând o nouă componentă numită listei de utilizatori
.Componente / / UserList.js listei de utilizatori
definim modul în care lista va fi redată cu:var list = this.props.data.map (funcție (element) retur
cheie
atribut.ContentPage.js
fișier cu import UserList din "... / UserList";
și definiți câteva date de testare cu: var listData = [primul: 'Peter', ultima: 'Tosh', primul: 'Robert', ultimul: 'Marley', first: 'Bunny', ultima: 'Wailer';
ContentPage.js
noi numim listei de utilizatori
cu JSX
.listei de utilizatori
componenta poate accesa date
atributul prin this.props.data
.this.props
. De asemenea, puteți defini tipul de date care trebuie furnizate utilizând propTypes
variabilă statică în cadrul clasei sale.Componente extinse față de sintaxa React.createClass
clasa ComponentName extinde componenta
pe care l-ați văzut înainte în acest tutorial, creați o clasă React cu următoarea sintaxă:var MyListItem = React.createClass (render: function () retur
this.props.results.map (funcția (rezultatul) retur
); );