En kombination av färdigskriven kod och regler för struktur
Syftet med ett ramverk/bibliotek är att det ska gå snabbare att utveckla och underhålla kod för applikationer.
Ett ramverk är mer ett "skelett" där den egna koden måste integreras med ramverkets kod (oftast svårare startsträcka...)
Ett bibliotek är en samling fördefinierade klasser, metoder, moduler som kan anropas för att köras i sin egen kod.
Dock kan gränsen mellan de båda vara ganska oskarp - begreppen kan ibland användas synonymt
Javascript:
CSS:
För att lära sig React behöver man goda kunskaper i Javascript. Dessutom tar det tid att sätta sig in i React struktur/regler enligt dokumentation/community.
För att lära sig ett ramverkmåste man både ha kännedom om det underliggande programspråket samt sätta sig in i ramverkets syntax och regler.
• Skapades (bland annat) av Jordan Walke, en ingenjör på Facebook
• React baserades på lärdomar av XHP (ett HTML ramverk för PHP)
• Lanserades officiellt 2013 till open-source community:n
• Användes på Facebooks feed och Instagram innan dess
• React är så populärt att det används inom flera olika applikationsområden
• Mobil, desktop, VR m.m.
• React Native är en satsning för att göra om sin JS-baserade kod till applikationer för andra plattformar (likt NativeScript)
"React är ett deklarativt, komponentbaserat bibliotek för att skapa användargränsnitt"
• Deklarativt istället för imperativt - Läs mer här
• Komponentbaserat - allt är en komponent, återanvändbara komponenter
• Är alltså bara en del av en full webbapplikation, kan liknas vid "V":et i MVC (är ett design pattern Model, View, Controller)
Byggnadstenen i React innehåller HTML, (CSS) och JS - tänk på dem som att de innehåller det man behöver samtidigt som de går att återanvända.
Låt oss kika på första komponenten...men först
Enligt bok (och mina preferenser) använder vi Vite som build tool https://vitejs.dev/
Det går ju att göra själv, men Vite gör jobbet för oss!
(Det finns också ett annat populärt build tool, Create React App )
JSX är en förlängning av Javascript, filnamn .jsx
Det ser ut som HTML, men är egentligen Javascript!
Allt innanför { ... } är Javascript uttryck
const name = 'Anders Wikström';
const element = <h1>Hello, {name}</h1>;
function NumberList(props) {
const numbers = props.numbers;
const listItems = numbers.map((number) =>
<li key={number.toString()}>
{number}
</li>
);
return (
<ul>{listItems}</ul>
);
}
function Welcome(props) {
return <h1>Hello, {props.name}</h1>;
}
// HTML-FIL
<button onclick="doSomething()">
Do Something
</button>
// React
<button onClick={doSomething}>
Do Something
</button>
<button className="btn" onClick={doSomething}>
Do Something
</button>