MVC är ett mycket populärt paradigm i webbutveckling och har funnits länge. Reaktramen är en kraftfull del av den treenigheten Model-View-Controller, eftersom den fokuserar rent på Viewen ensam. React är skrivet i JavaScript och skapad av Facebook och Instagram utvecklingsteam.
React används över hela webben för att skapa snabba webbapplikationer som är lätta att underhålla på grund av hur React Framework strukturerar visningslagekoden.
För att komma igång, är det här ett enkelt exempel på Reakt som tagits från de officiella exemplen:
var HelloMessage = React.createClass (render: function () returnHej this.props.name; ); React.render (, document.getElementById ("container"));
I det här exemplet kommer "Hello John" till en JSX är en XML / HTML-liknande syntax som används för att göra HTML från JavaScript-kod. React omvandlar JSX till inbyggt JavaScript för webbläsaren, och med de angivna verktygen kan du konvertera dina befintliga webbplatser HTML-kod till JSX! JSX möjliggör enkel kodmingling eftersom det känns som att skriva inbyggd HTML men från JavaScript. Kombinerat med Node ger detta ett mycket konsekvent arbetsflöde. JSX behöver inte använda React-du kan bara använda vanlig JS-men det är ett mycket kraftfullt verktyg som gör det enkelt att definiera trädstrukturer med och tilldela attribut, så jag rekommenderar starkt användningen av den.. Om du vill göra en HTML-tagg i React, använd bara små bokstäver med vissa JSX så här: Det finns flera sätt att använda React. Det officiellt rekommenderade sättet är från npm eller Facebook CDN, men dessutom kan du klona från git och bygga din egen. Du kan också använda startpaketet eller spara tid med en byggnadsgenerator från Yeoman. Vi kommer att täcka alla dessa metoder så att du har en fullständig förståelse. För det snabbaste sättet att gå, inkludera bara React and React Dom-biblioteken från fb.me CDN enligt följande: React manualen rekommenderar att du använder React med ett CommonJS-modulsystem som browserify eller webpack. React manualen rekommenderar också att du använder Nu kan du se React-installationen inuti Du måste ha Node V4.0.0 + och npm v2.0.0 +. Du kan kontrollera din nodversion med Jag rekommenderar att du använder nvm-nodversionshanteraren för att uppdatera och välja din nodversion. Det är lätt att förvärva nvm genom att helt enkelt springa: Detta skript klonar nvm-arkivet till Om du vill installera manuellt För att aktivera nvm med den här metoden måste du källa den från skalet med: Obs! Lägg till den här raden i din Med nvm nu installerat kan vi få vilken version av nod som vi behöver, och kan kontrollera listan över installerade versioner med Installera den senaste versionen och ställ den som standardversion med följande: Noder är uppdaterad och npm ingår i affären. Du är nu redo att rulle med installationen. Klona förvaret med git i en katalog som heter När du har repo klonat kan du nu använda Vid denna tidpunkt a Först och främst ladda ner startpaketet. Extrahera zip och i rot skapa en I det här exemplet använder React Babel för att omvandla JSX till vanlig JavaScript via Create a new file at Now all you need to do is reference it in your HTML, so open up the Uppdatera sidan och du kommer att se Obs! Vissa webbläsare (till exempel Chrome) kommer inte att ladda filen om den inte visas via HTTP, så se till att du använder en lokal server. Jag rekommenderar browsersync-projektet. Du kan också använda kommandoradsgränssnittet (CLI) för att omvandla din JSX via hjälp av babelkommandon-verktyg. Detta är enkelt att förvärva via kommandot npm: De Nu när babel är installerad, låt oss göra översättningen av Nu filen Nu har babel genererat Så att återskapa, med babel kan vi ladda JSX direkt inuti a Generering av denna kopia görs på kommandoraden, och eftersom det här är en repetitiv uppgift rekommenderar jag starkt att automatisera processen genom att använda Yeoman är ett mycket användbart verktyg för att starta projekt snabbt och med ett optimalt arbetsflöde och verktygskonfiguration. Tanken är att låta dig spendera mer tid på utveckling än konfiguration av projektets arbetsområde och för att minimera repetitiva uppgifter (var medveten om detta. RSI är den främsta orsaken till att kodarna stoppar kodningen). Så som en bra metod, spara tid med verktyg och implementera D.R.Y (Repeat Yourself) i ditt dagliga liv kommer att öka din hälsa och effektivitet, och låta dig spendera mer tid på att göra faktisk kod snarare än konfiguration. Det finns många byggnadsställningar där ute, som kommer i många smaker för olika skalaer av projekt. För det här första exemplet kommer vi att använda Obs! Det här är en fullstack-konfiguration, vilket förmodligen är överkill för alla små projekt. Anledningen till att jag väljer denna byggnadsställning är att ge dig en helt uppställd miljö så att du kan se hur startpaketet köks ut i en större app. Det finns en sidhuvud och sidfot, och du kan se var en användarinloggning och registreringsfunktion kommer att gå, även om de inte är kodade ännu i exemplet. För att använda yeoman installerar du först det, och om du inte har yeoman erfordrade motsvarigheter Installera nu React ställningen med: Skapa nu en katalog för ditt projekt och Använd slutligen Yeoman kommer nu skapa kataloger och filer som krävs Du kommer att kunna se uppdateringar om detta på kommandoraden. Med byggnadsställningen som nu är uppbyggd, låt oss bygga vårt projekt: Som standard börjar vi in debug läge, och för att gå live lägger vi bara till Du kommer nu att se start och initialisering av startpaketet. När det här är klart kommer du att se webpackutgången som berättar detaljerad information om byggnaden och webbadresserna för åtkomst från. Öppna din app via de URL-adresser som anges i slutet av utmatningen, med webbläsaren som standard på http: // localhost: 3000. För att komma åt administratörsgränssnittet för webbläsare, gå till http: // localhost: 3001. Obs! Du kan behöva öppna porten på din server för utvecklingsporten. För användare av ubuntu / debian med Facebook tillhandahåller ett onlineverktyg om du bara behöver konvertera en kod av HTML till JSX. För större krav finns ett verktyg på Att använda det via kommandoraden är så enkelt som: Därför att Låt oss börja arbeta med att skapa en grundläggande uppgiftslista så att du kan se hur React fungerar. Innan vi börjar bör du konfigurera din IDE. Jag rekommenderar att du använder Atom. Vid bash-prompten installerar du linjerna för React via apm: Obs: Den senaste versionen av När det är klart kan vi gå vidare med att skapa en grundläggande lista inom ställningarna som vi gjorde i det tidigare steget med Yeoman, för att visa dig ett fungerande exempel på dataflödet. Se till att din server startas med Först och främst finns det tre jade malfiler som finns i denna byggnadsställning. Vi kommer inte att använda dem till exemplet, så börja med att rensa ut Uppdateringen visas direkt utan att behöva uppdateras. Detta är konfigurationen av webpack och browsersync som byggnadsställningen har gett i kraft. Öppna sedan katalogen för komponenter och skapa en ny katalog: Nu, inuti Också, fortfarande inuti För att slutföra måste vi lägga till några data för den här listan. Vi ska göra det inuti Nu när vi sparar, kommer webpacken att återuppbyggas och browsersync visar ändringarna i din webbläsare. Ta en titt på källkoden för att se hur den gjordes. Vi har använt Yeoman ställningsgenerator Härifrån redigerade vi Inuti Här är det viktigt att notera att React kräver att alla itererade objekt har en unik identifierare som tillhandahålls under För att visa listan tar vi den in i Inuti Nu den När vi passerar ett värde med en attribut av en komponent kan den nås via Slutligen är en viktig punkt att notera att det här exemplet utnyttjade utökade komponenter. Detta har många fördelar för att strukturera din kod semantiskt. Men du kanske vill få tillgång till en mer benägen strategi, som många andra exempel gör. Så istället för Tja, det bryter oss för denna introduktion till React. Du borde nu ha en god förståelse för följande: I de kommande delarna kommer vi att diskutera hur man använder JSX vidare, hur man arbetar med en databas som en beständig datakälla och hur React fungerar med annan populär webbteknologi som PHP, Rails, Python och .NET.Vad är JSX?
// className används i JSX för klassattribut var fooDiv = ; // Render där div # exempel är vår platshållare för infogning ReactDOM.render (fooDiv, document.getElementById ('example'));
Installera React
Använda Facebook CDN
Installation från NPM
reagera
och reagerar-dom
npm-paket. För att installera dessa på ditt system, kör följande vid bash-terminalen i din projektkatalog eller skapa en ny katalog och CD
till det först.$ npm installera - save reagera domän $ browserify -t babelify main.js -o bundle.js
node_modules
katalog.Installation från Git Source
beroenden
nodversion
och npm med npm-version
Uppdateringskod via NVM
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.29.0/install.sh | våldsamt slag
~ / .Nvm
och lägger till källlinjen i din profil (~ / .Bash_profile
, ~ / .Zshrc
eller ~ / .Profile
).nvm
det kan du göra via git
med:git klon https://github.com/creationix/nvm.git ~ / .nvm && cd ~ / .nvm && git checkout 'git beskriva --abbrev = 0 - taggar'
. ~ / .Nvm / nvm.sh
~ / .Bashrc
, ~ / .Profile
, eller ~ / .Zshrc
filer respektive för att få det automatiskt efter inloggning.Använda NVM
nodlista
och de som finns med nod ls-fjärrkontroll
. Vi behöver en version högre än 4.0.0 för att arbeta med React.$ nvm installera 4.2.1 $ nvm alias standard 4.2.1 standard -> 4.2.1 (-> v4.2.1) $ nvm använd standard Nu använder du nod v4.2.1 (npm v2.14.7)
Bygg reaktion från Git Source
reagera
på ditt system med:git klon https://github.com/facebook/react.git
grymta
att bygga React:# grunt-cli behövs av grunt; du kanske har installerat det här men kan se till med följande $ sudo npm installera -g grunt-cli $ npm installera $ grunt build
bygga/
katalogen har befolts med allt du behöver för att använda React. Ta en titt på / examples
katalog för att se några grundläggande exempel som fungerar!Använda startpaketet
HelloWorld.html
, lägger till följande:
.
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
som gjordes av babel.Offline Transformation
$ sudo npm installera - global babel
--global
eller -g
flagga för kort kommer att installera babelpaketet globalt så att det är tillgängligt överallt. Det här är en mycket bra övning med att använda nod för flera projekt och kommandoradsverktyg.helloworld.js
Vi skapade just i steget före. Vid kommandotolken från rotkatalogen där du startade upp startpaketet kör du:$ babel src - watch - out-dir build
bygga / helloworld.js
kommer automatiskt att genereras när du gör en förändring! Om du är intresserad, läs Babel CLI-dokumentationen för att få en mer avancerad kunskap.bygga / helloworld.js
, som innehåller just straight-up JavaScript, uppdaterar HTML utan några babel-aktiverade skript taggar.
manus
tagga via text / babel
typ attributet. Detta är bra för utvecklingsändamål, men för att gå till produktion kan vi tillhandahålla en genererad JavaScript-fil som kan cachas på användarens lokala maskin.--Kolla på
flagga. Eller du kan gå ett steg längre och utnyttja Webpack
och browsersync
för att automatisera din utvecklings arbetsflöde. För att göra det på den enklaste vägen kan vi automatisera installationen av ett nytt projekt med en Yeoman-generator.Installera med Yeoman Stillahavs
reagerar-fullstack
byggnadsställningar från Yeoman-generatorer; Du kan se en demonstration av vad slutresultatet ser ut.Användande
klunk
, lövsal
och grunt-cli
, installera dem som så:$ sudo npm installera -g yo bower grunt-cli gulp
$ sudo npm installera -g generator-reagera-fullstack
CD
till det:$ mkdir reagera projekt $ cd reaktionsprojekt
yo
kommandot med React-fullstack ställningsgenerator för att skapa din reagera app i katalogen:$ yo reagera fullstack
$ npm starta
-- släpp
flagga, t.ex.. npm kör start - release
.ufw
, gör följande:$ ufw tillåter 3001 / tcp $ ufw tillåter 3000 / tcp
Konvertera din befintliga webbplats till JSX
npm
för det som heter htmltojsx
. Ladda ner det med:npm installera htmltojsx
$ htmltojsx -c MyComponent existing_code.htm
htmltojsx
är en nodmodul, du kan också använda den direkt i koden, till exempel:var HTMLtoJSX = kräver ('htmltojsx'); var converter = ny HTMLtoJSX (createClass: true, outputClassName: 'HelloWorld'); var output = converter.convert ('
Lista exempel
apm installation linter linter-eslint reagera Installera linter till /Users/tom/.atom/packages ✓ Installera linter -eslint till /Users/tom/.atom/packages ✓ Installera reagerar på /Users/tom/.atom/packages ✓
linter-eslint
gjorde min MacBook Pro väldigt långsam, så jag inaktiverade den.npm start
, och nu börjar vi göra några ändringar.index.jade
fil så det är bara en tom fil. När du har sparat filen, kolla din webbläsare och terminalutgång.$ cd-komponenter $ mkdir Användarlista
Userlist
katalog, skapa en package.json
fil med följande:"namn": "UserList", "version": "0.0.0", "privat": true, "main": "./UserList.js"
Userlist
katalog, skapa UserList.js
fil och lägg till följande:// Import React Import React, PropTypes, Component från "reagera"; // Skapa komponenten UserList-komponent UserList utökar komponent // Huvudmetoden görs kallas i alla komponenter för display render () // Ovanstående nedan för att se objektet inuti konsolen //console.log(this.props.data ); // Iterera data som tillhandahålls här var list = this.props.data.map (funktion (item) return
lista
); // Gör det tillgängligt för resten av appens standard-användarlista; komponenter / ContentPage / ContentPage.js
. Öppna den filen och ställ in innehållet enligt följande:/ *! React Starter Kit | MIT-licens | http://www.reactstarterkit.com/ * / import React, PropTypes, Component från 'reagera'; importera stilar från './ContentPage.css'; importera withStyles från '... / ... / decorators / withStyles'; importera UserList från '... / UserList'; // Här importerar vi UserList-komponenten vi skapade @withStyles (styles) class ContentPage utökar komponent static propTypes = path: PropTypes.string.isRequired, content: PropTypes.string.isRequired, title: PropTypes.string; statiska contextTypes = onSetTitle: PropTypes.func.isRequired,; render () // Definiera vissa data för listan var listData = [först: 'Peter', sist: 'Tosh', först: 'Robert', sist: 'Marley', first: 'Bunny' , senast: 'Wailer',]; this.context.onSetTitle (this.props.title); lämna tillbaka (
This.props.title
// Använd komponenten UserList som JSX Sammanfattning
reagerar-fullstack
för att starta en React-webbapp baserat på startpaketet. För en ytterligare förklaring av filen och kataloglayouten, kolla in readme i React starter kit git repo.index.jade
fil så det var nollställt och började skapa vår egen visningsvy, vilket gör en ny komponent som heter Userlist
.komponenter / Userlist / UserList.js
vi definierar hur listan kommer att göras med:var list = this.props.data.map (funktion (objekt) returnera
nyckel-
attribut.ContentPage.js
fil med importera UserList från '... / UserList';
och definiera vissa testdata med: var listData = [första: 'Peter', senast: 'Tosh', först: 'Robert', sist: 'Marley', första: 'Bunny', sist: 'Wailer',];
ContentPage.js
vi kallar Userlist
komponent med JSX
.Userlist
komponent kan komma åt data
attribut via this.props.data
.this.props
. Du kan också definiera vilken typ av data som måste tillhandahållas genom att använda propTypes
statisk variabel inom sin klass.Extended Components vs React.createClass Syntax
klass Komponentnamn utökar komponent
som du tidigare sett i den här handledningen skapar du en React-klass med följande syntax till exempel:var MyListItem = React.createClass (render: function () return
this.props.results.map (funktion (resultat) return
); );