Jou weet hoe ie is wegens eentje nieuwe taal of kader op te pikken. Somwijlen is er geweldige documentatie wegens jij er doorheen te promoten. Maar zelfs den lieve documentatie omvatten noch alles. Plusteken indien jij met iets televisiejournaal werkt, zul jij ongetwijfeld eentje probleem tegenkomen waarvoor geen schriftelijke soelaas bestaat.
Zo wasgoed ie voordat mij den eerste keer dat ik eentje React-project maakte – plusteken React is eentje van diegene frameworks met opmerkelijke documentatie, vooral nu met den bètadocumenten. Maar ik heb mij er nog steeds doorheen geworsteld. Ie is alweer eentje tijdje geleden sinds dat project, maar den lessen diegene ik eruit heb getrokken, staan nog versregel ter mijn herinneringsvermogen. Plusteken hoewel er veel React “how-to” tutorials zijn, denk ik dat ik zullen porties watten ik wou dat ik wist waarna ik ie voordat ie voorgerecht gebruikte.
Dus dat is watten dit wetsartikel is: eentje opsomming met den vroege mankementen diegene ik heb vervaardigd. Ik opeenstapeling dat zij promoten wegens ie leren van React eentje stuk soepeler voordat jij te maken.
Create-react-app gewoontes wegens eentje project te stichten
TL; DR Gewoonte Vite of Parcel.
Maak een React-app (CRA) is eentje tool diegene jij helpt ter ie toenemen van eentje opzienbarend React-project. Ie creëert eentje ontwikkelomgeving met den lieve configuratie-opties voordat den meeste React-projecten. Dit betekent dat u zelf geen tijdstip hoeft te doorbrengen aan ie configureren.
Mits beginner oningewijde dit eentje geweldige wijze wegens met mijn werkgelegenheid te opstarten! Geen configuratie! Start gewoon met codering!
CRA tweedehands hiervoor twee populaire pakketten, webpack plusteken Babel. webpack is eentje webbundelaar diegene alle middelen ter uw project optimaliseert, zoals JavaScript, CSS plusteken afbeeldingen. Babel is eentje tool waarmee u nieuwere JavaScript-functies kunt gewoontes, zelfs indien sommige browsers dit noch ondersteunen.
Beide zijn wasgoed, maar er zijn met name nieuwere tools diegene ie werkgelegenheid huis kunnen doet Vit Plusteken Snelle webcompiler (SWC).
Dit nieuwe plusteken verbeterde alternatieven zijn sneller plusteken eenvoudiger te configureren dan webpack plusteken Babel. Dit maakt ie gemakkelijker wegens den configuratie aan te voetstappen, watten moeilijk te doet is ter create-react-app zonder uitwerpen.
Wegens zij alletwee te gewoontes ter ie toenemen van eentje opzienbarend React-project, moeten jij ervoor zorgen dat jij zij hebt Knooppunt versie 12 of hoger geïnstalleerd, voer dan den volgende opdracht uit.
npm create vite
U wordt gevraagd eentje naam voordat uw project te selecteren. Zodra jij dat hebt gedaan, selecteer jij Reageren ter den opsomming met frameworks. Daarna kunt u eentje van beide uitkiezen Javascript + SWC
of Typescript + SWC
Dan moeten jij van directory veranderen cd
ter uw project plusteken voer den volgende opdracht uit;
npm i && npm run dev
Dit zullen eentje ontwikkelingsserver voordat uw webpagina met den URL willen uitvoeren localhost:5173
Plusteken zo simpel is ie.
Gewoonte makend van defaultProps
voordat standaardwaarden
TL;DR Gewoonte ter positie daarvan standaard functieparameters.
Gegevens kunnen wordt doorgegeven aan React-componenten via iets genaamd props
. Dit wordt netwerk indien attributen ter eentje HTML-element aan eentje component toegevoegd plusteken kunnen wordt tweedehands ter den definitie van eentje component onderbrak den relevante waarden van ie prop-object te nemen dat indien argument wordt doorgegeven.
// App.jsx
uitvoer default function App() {
terugwedstrijd <Card title="Hello" description="world" />
}
// Card.jsx
function Card(props) {
terugwedstrijd (
<div>
<h1>{props.title}</h1>
<p>{props.description}</p>
</div>
);
}
uitvoer default Card;
Mits er uiteindelijk eentje standaardwaarde vereist is voordat a prop
den defaultProp
kenteken vermag wordt tweedehands:
// Card.jsx
function Card(props) {
// ...
}
Card.defaultProps = {
title: 'Default title',
description: 'Desc',
};
uitvoer default Card;
Met moderne JavaScript is ie mogelijk wegens den structuur van den props
object plusteken wijs er eentje standaardwaarde aan toe ter ie functieargument.
// Card.jsx
function Card({title = "Default title", description= "Desc"}) {
terugwedstrijd (
<div>
<h1>{title}</h1>
<p>{description}</p>
</div>
)
}
uitvoer default Card;
Dit is gunstiger omdat den code onderbrak moderne browsers vermag wordt lezen zonder dat er reserve wijziging nodig is.
Helaas, defaultProps
vergen enige wijziging wegens onderbrak den browser te wordt lezen, aldaar JSX (JavaScript XML) noch standaard wordt ondersteund. Dit vermag mogelijk van stemkracht zijn op den prestaties van eentje toepassing diegene veel tweedehands defaultProps
.
Noch gewoontes propTypes
TL;DR Gewoonte TypeScript.
Ter Reageren, den propTypes
kenteken vermag wordt tweedehands wegens te natellen of eentje component ie juiste gegevenstype voordat zijn rekwisieten wordt doorgegeven. Hiermee kunt u ie type gegevens specifieren dat voordat elke prop moeten wordt tweedehands, zoals eentje tekenreeks, nummer, object, enzovoort. Zij stellen u zowel ter staat wegens te specifieren of eentje prop vereist is of noch.
Op dit wijze zullen React eentje vergissing genereren indien eentje component ie verkeerde gegevenstype doorgeeft of indien eentje vereiste prop noch wordt verstrekt.
// Card.jsx
invoer { PropTypes } from "prop-types";
function Card(props) {
// ...
}
Card.propTypes = {
title: PropTypes.string.isRequired,
description: PropTypes.string,
};
uitvoer default Card;
TypScript biedt eentje niveau van typeveiligheid ter gegevens diegene wordt doorgegeven aan componenten. Zo zeker, propTypes
waren eentje wasgoed idee waarna ik begon. Nu TypeScript echter den go-to-oplossing voordat typeveiligheid is worden, zullen ik ie ten zeerste aanbevelen wegens ie bovenop iets verschillend te gewoontes.
// Card.tsx
interface CardProps {
title: string,
description?: string,
}
uitvoer default function Card(props: CardProps) {
// ...
}
TypeScript is eentje programmeertaal diegene voortbouwt op JavaScript onderbrak statische typecontrole toe te voegen. TypeScript biedt eentje krachtiger typesysteem, dat meer potentiële bugs vermag opvangen plusteken den ontwikkelervaring verbetert.
Klassencomponenten gewoontes
TL;DR: Schrijf componenten indien functies
Klassecomponenten ter React wordt vervaardigd met behulp van JavaScript-klassen. Zij hebben eentje meer objectgeoriënteerde structuur plusteken daarnaast enkele reserve functies, zoals den potentie wegens den this
zoekwoord- plusteken levenscyclusmethoden.
// Card.jsx
class Card extends React.Component {
render() {
terugwedstrijd (
<div>
<h1>{this.props.title}</h1>
<p>{this.props.description}</p>
</div>
)
}
}
uitvoer default Card;
Ik geef den voorliefde aan ie schrijven van componenten met schoolklassen bovenop functies, maar JavaScript-klassen zijn voordat beginners moeilijker te vatten plusteken this
vermag hevig verwarrend zijn. Ter positie daarvan raad ik aan wegens componenten indien functies te schrijven:
// Card.jsx
function Card(props) {
terugwedstrijd (
<div>
<h1>{props.title}</h1>
<p>{props.description}</p>
</div>
)
}
uitvoer default Card;
Functiecomponenten zijn simpelweg JavaScript-functies diegene JSX terugzenden. Zij zijn veel gemakkelijker te oplezen plusteken hebben geen reserve functies zoals den this
trefwoord plusteken levenscyclus methoden waardoor zij huis presteren dan klassecomponenten.
Functiecomponenten hebben zowel ie voordeel van ie gewoonte van tekenhaken. Reageer haken stelt u ter staat wegens status- plusteken andere React-functies te gewoontes zonder eentje klassecomponent te schrijven, waardoor uw code huis leesbaar, onderhoudbaar plusteken herbruikbaar wordt.
Invoeren Reageer onnodig
TL;DR: Jou hoeft ie noch te doet, uitgezonderd jij hooks nodig hebt.
Sinds React 17 ter 2020 is uitgebracht, is ie nu noch nodig wegens React bovenaan uw partner te invoeren wanneer u eentje component maakt.
invoer React from 'react'; // Not needed!
uitvoer default function Card() {}
Maar dat moesten wij doet vóór React 17 omdat den JSX-transformator (ie ding dat JSX omzet ter regulier JavaScript) eentje trant gebruikte met den naam React.createElement
dat zullen enig werken ter ie invoeren van React. Sindsdien is er eentje nieuwe transformator uitgebracht diegene JSX vermag transformeren zonder den createElement
trant.
Jou moeten React nog steeds invoeren wegens hooks te gewoontes, fragmentenplusteken alle andere functies of componenten diegene u nodig heeft uit den bibliotheek:
invoer { useState } from 'react';
uitvoer default function Card() {
const (count, setCount) = useState(0);
// ...
}
Dat waren mijn vroege mankementen!
Misschien is ‘vergissing’ eentje te hard woord, aldaar sommige van den betere praktijken schrede zometeen totdat stand kwamen. Weliswaar zie ik toereikend gevallen waarin den ‘oude’ wijze wegens iets te doet nog steeds actief wordt tweedehands ter projecten plusteken andere tutorials.
Wegens fair te zijn, heb ik waarschijnlijk veel meer dan vijf mankementen vervaardigd waarna ik begon. Telkens wanneer u zoals eentje nieuwe tool grijpt, zullen ie meer eentje leertraject zijn wegens ie effectief te gewoontes, ter positie van eentje schakelaar wegens te zetwerk. Maar dit zijn den goedje diegene ik jaren zometeen nog steeds ter mij draag!
Mits jij React ofschoon eentje tijdje tweedehands, watten zijn enkele goedje diegene jij zullen willen weten voordat jij begon? Ie zullen massaal zijn wegens eentje collectie op spoed te brengen wegens anderen te promoten dezelfde vedette te vermijding.