Към съдържанието
wannacode

Добре дошъл

Накратко: Курсът „Уеб интерфейси“ учи HTML, CSS и DOM, после компоненти, състояние и данни с React или Vue, с примери, които се пускат направо в страницата.

Проблем

Програмата е вярна. Клиентите се оплакват

Сметката на кошницата е вярна, а тестовете минават. Но на телефона бутонът „Поръчай“ е извън екрана. Човек, който ползва екранен четец, чува само „бутон“, без да знае какъв. Списъкът с продукти замръзва, докато се зарежда, а при бърз клик поръчката тръгва два пъти.

Хората виждат програмата през екран. Ако екранът се чупи, програмата не работи, колкото и вярна да е отдолу. Този курс учи как се прави екранът.

Идеята

Как браузърът показва страница

  1. Браузърът иска страницата от сървъра и получава HTML: текст, който казва какво има на нея.
  2. От HTML строи дърво от елементите: заглавие, абзац, бутон. Това дърво се казва DOM.
  3. Прилага CSS: правилата за цвят, размер и подредба. Смята къде отива всеки елемент и го рисува.
  4. JavaScript променя дървото: добавя продукт в списъка, сменя текста на бутона. Браузърът рисува наново само каквото е засегнато.

Целият курс е за тези четири стъпки. Първо ги правиш на ръка, а после виждаш как React и Vue правят четвъртата вместо теб.

Идеята

Пясъчникът

Кодът в уроците се пуска направо в страницата. Пробвай: натисни „Изпълни“, после бутона в страницата отдолу. Смени текста в script.js и пусни пак.

HTML, CSS, JS
  • Файловете са в табове: index.html, style.css, script.js, а по-нататък и компонентите. Ctrl+Enter (⌘+Enter на Mac) пуска кода, а „Върни кода“ връща примера.
  • Конзолата е под страницата: там са console.log и грешките.
  • Пясъчникът е изолиран. Кодът не вижда сайта, бисквитките и паметта му и няма мрежа. На fetch('/api/…') отговаря мнимо API с данните на магазина, а уроците включват нарочно бавен отговор, грешка или празен списък.
  • Задачите се проверяват по поведение. „Провери“ натиска бутоните и пише в полетата като човек и търси елементите по роля и име, както ги намира екранен четец. Бутон без име не се намира, затова задачата проверява и достъпността.
  • Безкраен цикъл в кода спира раздела на браузъра. Тогава презареди страницата: кодът ти е запазен.

Идеята

Двете части

Първата част е платформата: HTML, CSS и DOM. Тя е една и съща за React и Vue, затова текстът и кодът са еднакви на двете страници.

  • Структурата на страницата: елементи и дървото, текст и връзки, формуляри, достъпност.
  • Как изглежда: каскадата, кутиите, flexbox, grid, страница за телефон.
  • JavaScript в страницата: DOM, събития, списък от данни, данни от API.

Втората част са компонентите: защо при голям интерфейс ръчното пипане на DOM се чупи и как интерфейсът става функция на данните.

  • Компоненти, Състояние, Ефекти, данни и формуляри, Цяло приложение (рутиране, бързина, тестове, истински проект).
  • Проект: витрината на магазина: каталог, кошница и поръчка в едно приложение.

Идеята

React или Vue

Двете библиотеки решават една задача: описваш как изглежда интерфейсът за дадени данни, а библиотеката обновява страницата, когато данните се сменят. Ето една и съща кошница на двете:

Vue
App.vue
Това е кодът на Vue: компонентът е файл .vue с шаблон, скрипт и стил. React кодът е на страницата за React.

Не ги класираме. Идеите са едни и същи, а разликата е в записа: React е JavaScript с HTML вътре, Vue е HTML шаблон с JavaScript вътре. Избери едната с „Библиотека:“ над урока и смени по всяко време. Ако не знаеш коя: виж какво ползват фирмите, където искаш да работиш. Като знаеш едната, другата се учи за дни. Има и други (Angular, Svelte, Solid). Те почиват на същите идеи.

Идеята

Какво трябва да знаеш

От JavaScript ти трябват функции, обекти и масиви с map и filter, модули с import и async/await: курсът по JavaScript до „Модерен JavaScript“. Където урокът ползва нещо оттам, сочи към него.

В браузъра не трябва нищо за инсталиране. За свой проект извън пясъчника ти трябват Node.js, редактор (например VS Code) и Vite, който прави празен проект:

Терминал
npm create vite@latest shop -- --template vue
cd shop
npm install
npm run dev

Тези команди не се пускат тук. Как изглежда истински проект, е последният урок от „Цяло приложение“.

Тест

Провери се

1. Браузърът получи HTML. Какво прави, преди да нарисува нещо?
2. Кодът в пясъчника вика fetch("https://example.com/data"). Какво става?
3. React или Vue: кое е по-доброто?

Създаден от Иво Гергов като част от кампанията на Evo Tech за достъпно обучение по програмиране ·