React
Introduksjon
Agenda
- Generelt
- Hva er rammeverk? Bibliotek vs rammeverk
- Hvorfor?
- Angular vs React vs Vue
- React vs HTML+JS → ReactDOM vs DOM
- Hva er React JS?
- Package manager → npm vs yarn
- node / npm → npx + installation
- React installation + overview → create-react-app
- VS Code
- First react app → Structure, JSX
- Class components vs Functional components
31 år
Oslo, Norge
Bil, MC og Båt


2012 Programmering og nettverk
Universitetet i Oslo
2013 Design, bruk og interaksjon
Universitetet i Oslo
2015 Programmering og nettverk
Universitetet i Oslo
Improvement of large scale agile based teams
Retrospective meetings
Dawood Ahmad
2016-2018 Hovedlærer - sommerskole prosjekt




2017 Summer internship

2018 Systemutvikler

2018-2020 Konsulent – Front-end utvikler
2020-2022 Konsulent – Fullstack utvikler
Dawood Ahmad
Webstep Norge AS
- 2022 - 2024
- Rebel - Universitetsgata 2 - Oslo


What's next?
Generelt
Generelt

| Onsdag | Torsdag | Fredag |
|---|---|---|
| JavaScript rammeverk | Webteknologi | Arbeidsdag |
| Dawood | Abebe | Mustafa Baker |
Ting å tenke på fremover
- Gruppe (2-4 per gruppe)
- Dere velger selv
- Teams for hjelp
- Prosjektoppgave i 4. semester
- Gruppe
- Finne en bedrift å jobbe med
- Skolen kan tilby noen få prosjekter
Generelt

NB! Med forbehold om endringer...
Dette semesteret ... Høstferien
| 34 | Introduksjon |
| 35 | Components + Props |
| 36 | Hooks: useState |
| 37 | Hooks: useEffect + Arbeidskrav 1 av 2 |
| 38 | Debugging + Testing + Arbeidskrav 1 av 2 |
| 39 | npm + package.json + react router dom |
| 40 | TypeScript (+ PropTypes) |
| Høstferie | Høstferie |
Tema
Uke
Hva er et rammeverk?
- Veldig mange ulike beskrivelser
- Veldig vagt forklart
- Et sett av bibliotek?
- Nja!?
- Arkitektur
- Struktur
- Programvare som er allerede utviklet og brukt for å lage din kode
- Noe som er utviklet så du slipper å utvikle det
Rammeverk vs bibliotek
- Hvem kaller hvem?
- Rammeverk kaller på din kode
- Din kode kaller på bibliotek
- Bibliotek er en samling av kode som din kode kan bruke.
- Rammeverk er en samling av kode, men med struktur og arkitektur. Koden vår må skrives i følge reglene til rammeverket
- Rammeverk kontrollerer flyten av din kode, bibliotek gjør ikke det
- Rammeverk er som regel mye strengere enn bibliotek
Men!
Hvorfor?
React vs Angular vs Vue

Angular
- Google 2010
- Rammeverk
- Stor læringskurve
- Store oppdateringer nesten hver 6. måned
React
- Facebook 2013
- Bibliotek
- JavaScript XML (JSX)
- Liten læringskurve
- Må bruke eksterne pakker
Vue
- x-Google asnatt 2014
- Liten læringskurve
- Flest interesserte, men ikke så mange utviklere
Angular
- You want reliable scalability.
- You want to focus on large-scale, feature-rich applications.
- You want a real-time application like Instant messaging and Chat app.
- You want to develop Native app, hybrid or web apps. (long-term and heavy- investment projects).
React
- You like flexibility more than other features.
- You want to develop cross-platform applications/SPA.
- You want to build complex enterprise-grade solutions.
- You plan to expand your application’s functionality in the future and would need continuous support.
Vue
- You want an early entry to the market.
- You need high speed and performance.
- Your app is pretty small or has to be lighting fast.
- You want to migrate an existing project to new technology but have limited resources.
Angular vs React vs Angular

Angular vs React vs Angular

Angular vs React vs Angular

Angular vs React vs Angular

Angular vs React vs Angular



React vs HTML + JS
ReactDOM vs DOM
ReactDOM
- Virtuell DOM
- Virtuell versjon av den originale DOM'en
- Skrevet i JavaScript
- Rendrer kun endringene
- Lager 2 type DOM
- Oversetter fra Virtuell DOM til DOM
DOM
- DOM
- Rendrer alt på nytt for hver endring
- Veldig treig


Gammelt
Nytt
Hva er React?
Hva er React?
- Facebook 2013
- Et JavaScript bibliotek for å bygge raske interaktive bruker-grensesnitt
- Open Source → UI bibliotek
- JavaScript XML (JSX)
- Mest populær i front-end markedet i dag
- Komponent basert
- Hva er en komponent?
- Tre av komponenter
- F.eks.: Kontakt skjema :D
- Function, state, render
- Ligner mest på JavaScript - Lett overgang


React Docs
- Truth vs ...
- https://reactjs.org/community/courses.html
- Youtube
- Udemy
- etc.
- MEN!
- Ulike versjoner! Pass på!

LinkedIn Learning
Men først!
Node JS

NPM


Package manager


Lets get to work!

Getting started
- Installer Node.js
- Naviger til ønsket mappe i terminalen og kjør kommando
-
npm create vite@latest - Følg prosedyren
- y
- Du kan gi det hvilket som helst navn
- Velg React med pil-tastene
- Velg JavaScript med pil-tastene
- Dersom vite ikke er installert tidligere vil den spørre om å installere
- Trykk y og enter
-
Mac/Windows terminal cheat sheet

VS Code
Demo
Spørsmål?
Tilbakemeldinger!!!
Component + Props
- Components
- Props
- Events and handling
- Callback/function param
Neste gang
1. Introduksjon
By dawood11
1. Introduksjon
- 157
