Conceptually, components are like JavaScript functions. They accept inputs (called "props") and return React elements describing what should appear on the screen.
Alla komponenter har tillgång till props
props
kommer att bli din bästa vän
Alla värden som skickas ner blir till props
this.props
//App.js
render(){
return(
<div>
<Header propName="propValue" />
</div>
);
}
Liknande som att man sätter ett attribut på ett HTML-element
Här skickar vi vidare värdet propValue
för att användas i Header
Det vi döper vår prop till är vad den kommer heta i vår komponent
//Header.js
render(){
return(
<h1> { this.props.propName === "propValue" } <h1/>
);
}
Blir tillgängligt via this.props
Spread props
Vi kan skicka ner värdena en för sig:
Vi kan även använda JSX-spread
Fungerar "typ" som ES6-spread
render(){
let obj = {
prop1: "value1",
prop2: "value2"
}
return(
<div>
<List {...obj} />
</div>
);
}
render(){
return(
<div>
<List prop1="value1" prop2="value" />
</div>
);
}
Conditional Rendering
Oftast vill man rendera olika innehåll baserat på olika värden
Hur? IF/ELSE
Innan return
kan vi göra beräkningar
render(){
if(???){
//Do stuff, return element?
}
return(
<div>
</div>
);
}
render(){
if(false){
return null
}else{
return(
<div>
Hello!
</div>
);
}
}
Ternary Operator
render(){
let text = this.props.text ? this.props.text : 'Default';
return(
<div>
{ text }
</div>
);
}
Användbara grejer
ES6 Destructuring
ES6 Spread and Rest syntax
Ternary Operator