Articles

React Basis: standard rekvisitter og Typechecking med Proptyper.

i denne blog gennemgår vi to React grundlæggende emner, herunder Standard rekvisitter og typechecking med Proptyper. Rekvisitter er objekter, der overføres fra en komponent til en anden (for eksempel fra en forældrekomponent til en barnekomponent). Hvis vi uanset grund undlader at videregive rekvisitterne til barnekomponenten, kan vi bruge standardrekvisitter i barnekomponenten for at forhindre, at appen går i stykker. Prøven app til denne blog er vist nedenfor og github repo er her.

sample app gør billedet ovenfor

prøveappen har en hoved – / forældrekomponent kaldet app.js (vist nedenfor) og de to brugerdefinerede komponenter; emne.JS og besked.js

import React from "react";
import "./App.css";
import Message from "./components/Message";
import Subject from "./components/Subject";function App() {
return (
<div className="App">
<Message name={"Paul"} age={12} sport={"Soccer"}>
<Subject subjects={} />
</Message>
</div>
);
}
export default App;

standard rekvisitter

i en klasse komponent standard rekvisitter kan enten defineres inden for klassen som statisk objekt som vist nedenfor,

class Message extends Component {
static defaultProps = {
name: "Eric",
age: 10,
sport: "Soccer",
}
render() {
return (
<div>
</div>
)
}
}

eller uden for klassen som vist nedenfor

class Message extends Component {
render() {
return (
<div>
</div>
)
}
}
Message.defaultProps = {
name: "Eric",
age: 10,
sport: "Soccer",
}

i funktionel komponent kan standardværdierne introduceres ved hjælp af standardargumenter syntaks som så

function Message({name="Eric",age"=10, sport ="Soccer"}){
return(
<div>
</div>
)
}

Vi kan også bruge Message.defaultProps={} vist ovenfor.

Proptyper

Proptyper er en React rekvisitter validering funktion . Med PropTypes kan vi specificere datatypen af rekvisitter som vist nedenfor. for eksempel kan vi videregive navn, sport og sport rekvisitter til en forekomst af Meddelelseskomponenten; <Message name={"Eric} age={10} sport={"Soccer"} /> . navn, sport er både streng datatype og alder prop er et tal datatype. Når der er angivet en forkert værdi for en prop, vises en fejl i konsollen

Message.propTypes = {
name: PropTypes.string,
age: PropTypes.number,
sport: PropTypes.string,
};

i React kan en komponent have en, mange eller ingen børn. Dette barn kan være et React-element eller en streng eller en anden datatype. Med PropTypes.element kan vi specificere, at kun et enkelt barn kan overføres til en komponent som børn. Desuden skal det enkelte barn være et React-element; Det kan være et almindeligt element (React-elementer, der repræsenterer DOM-tags) eller en anden React-komponent, men det kan ikke være en streng. Med PropTypes.element vises der ingen advarsel på konsollen, hvis der ikke sendes noget React-element. Men med PropTypes.element.isRequired vi kræver et enkelt barn er bestået; Message.propTypes={children: PropTypes.element.isRequired}

men før vi bruger PropTypes.element vi skal bruge this.props.children i Meddelelseskomponenten. this.props.children — en speciel prop, der automatisk overføres til komponenter

class Message extends React.Component {
render() {
let name = this.props.name;
let age = this.props.age;
let sport = this.props.sport;
let children = this.props.children;
return (
<div>
<h3>
My name is {name}, I am {age} old and I love playing {sport}{" "}
</h3>
<div>{children}</div>
</div>
);
}
}

oversigt

Vi har vist, hvordan du bruger standard rekvisitter, og hvordan du gør typechecking på React rekvisitter med Proptyper. Vi har også diskuteret en særlig React prop- this.props.children