In de rest van deze serie lessen zullen we ons concentreren op het lokaal instellen van React. De eerste van deze benaderingen is vergelijkbaar met CodePen, waarbij de React-scripts dynamisch in uw HTML-bestand werden ingevoegd voordat ze in het uitvoervenster werden gerenderd.
Het enige verschil hier is dat we de scripts handmatig zullen invoegen.
Begin met het maken van een index.html
documenteren en een paar toevoegen tags for the React and ReactDOM libraries.
Document
De toegevoegde React-scripts zijn via een CDN en de specifieke URI's worden door Facebook aanbevolen. Als u volledig offline wilt werken, kunt u deze scripts lokaal downloaden en de links als relatief wijzigen.
Een element This time, however, we won't be able to use JSX as there is no way to convert it to JavaScript at runtime. It has to be compiled ahead of time via a preprocessor such as Babel. We can't use ES6 classes or modules either as these features don't yet have universal browser support. Let's use the same React component from the CodePen example in part two of this tutorial series, so we can directly compare the two setup methods. Starting with the This is what a React component looks like without JSX. In fact, this is what the JSX code is actually compiled into by Babel. Let's now add the definitions for the two child components and add a reference to each of them in the top-level Here's what the whole HTML source code now looks like. Merk op hoe in de Open Ik zal hier niet meer in details treden Het is duidelijk dat het gebrek aan hulpmiddelen zoals Babel het eenvoudig maakt om React-code helemaal vanaf nul te schrijven. Er zijn veel andere tools waar we ook voordeel uit kunnen halen, zoals een bundler die één enkel JavaScript-bestand maakt van alle vereiste React-bibliotheken plus onze app-code. We zullen een betere aanpak ontdekken in de volgende sectie die net zo eenvoudig is in te stellen. Om het probleem van complexe handmatige React-setups op te lossen, heeft Facebook create-react-app geïntroduceerd, een gebruiksvriendelijke manier om met React aan de slag te gaan. Het biedt u volledige setup, maar vereist helemaal geen handmatige configuratie. Laten we doorgaan en create-react-app installeren. Typ de volgende code in een opdrachtregelvenster. Hiermee wordt create-react-app globaal geïnstalleerd, zodat u deze vanuit elke map kunt openen. U hebt npm geïnstalleerd om deze opdracht uit te voeren en Node.js om create-react-app uit te voeren. Omdat npm wordt gebundeld met Node.js, download en installeer eenvoudig de nieuwste versie van Node.js van de officiële website. We maken nu een nieuwe React-app met de naam Voer deze opdrachten uit om uw app te maken en het startscript uit te voeren. Het kan een minuut of twee duren voor create-react-app om alles te installeren. Als u klaar bent, voert u het Het leuke van create-react-app is dat het een mini-webserver bevat en ook de bestanden in je app bekijkt op wijzigingen. Wanneer een wijziging wordt aangebracht, wordt uw app opnieuw opgebouwd en wordt het browservenster automatisch opnieuw geladen om uw bijgewerkte app weer te geven. Tijdens het geautomatiseerde instellingsproces genereert create-react-app verschillende bestanden en de volgende drie mappen: Om een idee te krijgen hoe we componenten maken en deze met elkaar verbinden in een app die is gemaakt om apps te maken en apps te genereren, maken we dezelfde componenten waarmee we tot nu toe hebben samengewerkt. De standaarduitvoer van de app suggereert dat we moeten bewerken Jouw this.props.number: Hello from React! this.props.number: mijn tweede reactiecomponent. Sla je wijzigingen op en create-react-app zal je app automatisch updaten in de browser. Dit resulteert in dezelfde uitvoer als voorheen. (Merk echter op dat deze keer in de browser is geladen via de lokale webserver.) Laten we dit echter meer modulair maken om in overeenstemming te zijn met de moderne best practices voor het maken van React-apps. Maak twee nieuwe bestanden in de Binnen this.props.number: Hello from React! En van binnen this.props.number: mijn tweede reactiecomponent. Eindelijk moeten we updaten Deze aanpak voor het structureren van uw React-app is veel modulair en draagbaar. Het zorgt ook voor eenvoudiger debuggen, omdat elk onderdeel in zijn eigen module op zichzelf staat. In deze zelfstudie hebben we twee methoden besproken voor het lokaal instellen van React: de handmatige aanpak en het gebruik van de app create-react-app van Facebook. Handmatig vanuit het niets een React-app maken en de script-afhankelijkheden rechtstreeks in de Het gebruik van create-react-app daarentegen is een zeer soepel proces. Het is geïnstalleerd en geïnitialiseerd met een paar commando's. Eenmaal uitgevoerd, maakt create-react-app je app opnieuw en wordt het browservenster bijgewerkt elke keer dat je projectbestanden bewerkt. Dit is een erg leuke workflow bij het maken van veel kleine wijzigingen, omdat het helpt bij het versnellen van de app-ontwikkeling. In de volgende zelfstudie maken we een geheel nieuwe React-app die gebruikmaakt van Webpack en Babel om onze app te bundelen en te verwerken in een enkel JavaScript-bestand. In tegenstelling tot create-react-app, waar alles voor u wordt gedaan, zullen we alle setup-bestanden handmatig configureren en zullen we bespreken waarom u voor deze aanpak zou kiezen. tag was also added, which will be used to add our React code shortly.
component only:const App = function () return React.createElement( 'div', null, React.createElement( 'h2', null, 'My First React Components!' ) ); ReactDOM.render( React.createElement( App ), document.querySelector( '#app' ) );
component. I'll also implement the number
props from the CodePen example.
component kunnen we zoveel elementen maken als we willen door er meer aan toe te voegen React.createElement ()
. Ook worden rekwisieten overgedragen via een rekwisieten
JavaScript-object, dat vervolgens via componenten in de functieparameter kan worden geopend rekwisieten
.index.html
in een browser om de React-uitvoer te zien.React.createElement ()
, en andere niet-JSX-onderwerpen, aangezien de meerderheid van de React-gebruikers ervoor kiezen hun componenten te schrijven met behulp van JSX. We zullen JSX gebruiken voor onze React-componenten voor de rest van deze tutorialserie.Maak React-app
npm install -g create-react-app
my-first-onderdelen
. Merk op dat create-react-app automatisch de omringende map voor je app maakt, dus je hoeft alleen maar te zorgen dat je in de map bent waar je je app-map in wilt maken.create-react-app my-first-components cd mijn-first-components / npm start
npm start
commando en een nieuw browservenster wordt geopend en na enkele seconden wordt je React-app weergegeven.
App.js
als een startpunt, dus open dit bestand en verwijder de importeeroproepen voor het logo en CSS-bestanden omdat we deze niet nodig hebben. We kunnen het ook vereenvoudigen
component en voeg in onze twee onderliggende componenten van vóór toe.App.js
bestand zou er nu als volgt uit moeten zien:import Reageren, Component uit 'reageren'; class-app breidt component render () terug (
Mijn eerste componenten reageren!
src
map met de naam MyFirstComponent.js
en MySecondComponent.js
.MyFirstComponent.js
, voeg de volgende code toe:import Reageren, Component uit 'reageren'; class MyFirstComponent breidt Component render () return uit (
MySecondComponent.js
, voeg soortgelijke code toe:import Reageren, Component uit 'reageren'; class MySecondComponent breidt Component render () return uit (
App.js
om beide onderliggende componenten te importeren zoals ze nu in afzonderlijke bestanden staan:import Reageren, Component uit 'reageren'; importeer MyFirstComponent van './MyFirstComponent'; importeer MySecondComponent van './ MySecondComponent'; class-app breidt component render () terug (
Mijn eerste componenten reageren!
Conclusie
index.html
bestand is behoorlijk inefficiënt. Terwijl uw app wordt geschaald en verschillende versies van uw scripts worden vrijgegeven, wordt het handmatig bijwerken van de scripts snel onhandelbaar. Bovendien kunnen we geen ES6-functies gebruiken of onze componenten in JSX schrijven!