React bilan tanishuv — kirish va sozlash
React nima, nega kerak, npm bilan ishlash va birinchi «Hello world» komponentini yaratish.
Nega React?
Meta tomonidan yaratilgan va dunyoda eng ko'p ishlatiladigan frontend kutubxonasi. UI'ni komponentlardan qurish g'oyasi.
Dars rejasi
6 ta mavzu1. React nima va qayerda ishlatiladi?
React — UI (foydalanuvchi interfeysi) quradigan JavaScript kutubxonasi. Butun sahifa emas, kichkina, qayta ishlatiladigan «komponentlar»dan tashkil topadi.
Komponent-asosli
Har bir tugma, karta, forma — alohida komponent. Qayta ishlatiladi va testlanadi.
Deklarativ
«Nima ko'rsatilsin» deb yozasiz, «qanday chizilsin»ni React hal qiladi.
Virtual DOM
React sahifani to'g'ridan-to'g'ri emas, samarali yangilaydi — tez va silliq.
2. Package manager — npm
npm (Node Package Manager) — JavaScript kutubxonalarini o'rnatish va boshqarish vositasi. Node.js o'rnatilganda birga keladi.
1# Node.js o'rnatilganini tekshirish2node -v3npm -v4
5# Yangi loyihada init qilish6npm init -y7
8# Paket o'rnatish9npm install react10npm install react-dom11
12# Qisqacha13npm i react14
15# Dev paket (faqat dasturlash uchun)16npm install --save-dev vite17
18# Barcha paketlarni o'rnatish (clone'dan keyin)19npm install20
21# Paketni o'chirish22npm uninstall react23
24# Global paket25npm install -g create-react-app1{2 "name": "birinchi-react",3 "version": "0.1.0",4 "scripts": {5 "dev": "vite",6 "build": "vite build",7 "preview": "vite preview"8 },9 "dependencies": {10 "react": "^18.2.0",11 "react-dom": "^18.2.0"12 },13 "devDependencies": {14 "vite": "^5.0.0",15 "@vitejs/plugin-react": "^4.2.0"16 }17}3. Create React App
Create React App (CRA) — rasmiy «old» usul. Hech narsa sozlamasdan to'liq React loyiha yaratadi. Hozir u eskirgan, lekin bilish foydali.
1# Yangi loyiha yaratish2npx create-react-app birinchi-app3
4# Ichkariga o'tish5cd birinchi-app6
7# Dev server ishga tushirish8npm start9
10# Brauzerda ochiladi: http://localhost:300011
12# Build qilish (production uchun)13npm run build14
15# Test16npm test4. Vite — zamonaviy muqobil
Vite (fransuzcha «tez» — /vit/) — CRA o'rniga tavsiya etiladigan zamonaviy vosita. Sekundlar ichida ishga tushadi.
1# Yangi React loyiha2npm create vite@latest my-app3
4# Shablon tanlang: React + JavaScript (yoki TypeScript)5
6cd my-app7npm install8npm run dev9
10# Ochiladi: http://localhost:5173Vite — afzalliklar
Juda tez ishga tushadi, HMR (hot reload) darhol, zamonaviy ESM asosida.
CRA — kamchiliklar
Sekin, webpack eski, endi yangilanmaydi. Yangi loyiha uchun tanlamang.
5. Loyiha strukturasi
1my-app/2├── node_modules/ # O'rnatilgan paketlar (qo'l tegilmaydi)3├── public/ # Statik fayllar (rasm, favicon)4│ └── vite.svg5├── src/ # Asosiy kod shu yerda6│ ├── assets/ # Rasmlar7│ ├── App.css8│ ├── App.jsx # Asosiy komponent9│ ├── index.css10│ └── main.jsx # Kirish nuqtasi11├── .gitignore12├── index.html # Yagona HTML (root div)13├── package.json # Paketlar ro'yxati14├── package-lock.json # Aniq versiyalar15└── vite.config.js # Vite sozlamalari6. Birinchi «Hello world»
1<!DOCTYPE html>2<html lang="uz">3 <head>4 <meta charset="UTF-8" />5 <title>Birinchi React</title>6 </head>7 <body>8 <!-- React shu div ichiga chiziladi -->9 <div id="root"></div>10 <script type="module" src="/src/main.jsx"></script>11 </body>12</html>1import React from "react";2import ReactDOM from "react-dom/client";3import App from "./App";4import "./index.css";5
6// root elementni topamiz va React'ni unga biriktiramiz7ReactDOM.createRoot(document.getElementById("root")).render(8 <React.StrictMode>9 <App />10 </React.StrictMode>11);1function App() {2 return (3 <div>4 <h1>Salom, React!</h1>5 <p>Bu mening birinchi React komponentim.</p>6 </div>7 );8}9
10export default App;1# 1. Loyiha yaratish2npm create vite@latest birinchi-react3
4# 2. Ichkariga kirish va paketlarni o'rnatish5cd birinchi-react6npm install7
8# 3. Dev server9npm run dev10
11# 4. Brauzerda oching: http://localhost:5173Kichik test
0 / 41.React nima?
2.React paketini o'rnatish uchun buyruq?
3.Zamonaviy React loyihasi uchun tavsiya etiladigan vosita?
4.Loyiha ildizida qaysi fayl barcha paketlarni ro'yxatlaydi?