Библиотека программиста - Орбайсета Анхель Сола - Создание фронтенд-фреймворка с нуля [2025, PDF, RUS]

Reply to topic
DL-List and Torrent activity
Size:  25 MB   |    Registered:  1 month   |    Completed:  1 time
Seeders:  85  [  0 KB/s  ]   Leechers:  37  [  0 KB/s  ]   Show peers in full details
 
   
 
 
Author Message

Download WYSIWYG ®

Gender: Male

Longevity: 10 years

Posts: 1540

Post 01-May-2025 13:35

[Quote]

Создание фронтенд-фреймворка с нуля
Год издания: 2025
Автор: Орбайсета Анхель Сола
Переводчик: Матвеев Е.
Издательство: Питер
ISBN: 978-5-4461-4201-9
Серия: Библиотека программиста
Язык: Русский
Формат: PDF
Качество: Издательский макет или текст (eBook)
Интерактивное оглавление: Да
Количество страниц: 384
Описание: Мы используем фронтенд-фреймворки каждый день, но вряд ли действительно понимаем, что происходит там, под капотом. Создание своего фреймворка — отличный способ узнать, как он работает с DOM, генерирует представления страниц, передает данные между компонентами и взаимодействует с операционной системой. Шаг за шагом мы будем создавать собственный фреймворк на JavaScript и опубликуем его как npm-пакет.
Пора разобраться, как работает современный фреймворк, научиться управлять состоянием компонентов и их жизненным циклом, работать с виртуальным DOM и использовать алгоритмы согласования для эффективного обновления HTML. Все ключевые концепции изложены простым языком и сопровождаются схемами. Многие концепции заимствованы из React, Svelte, Angular и других известных инструментов.

Примеры страниц (скриншоты)

Оглавление

Введение..............................................................................................13
Благодарности......................................................................................15
О книге.................................................................................................17
Для кого эта книга...........................................................................................................17
Структура книги..............................................................................................................18
О коде в книге...................................................................................................................19
Форум LiveBook...............................................................................................................20
Онлайн-ресурсы...............................................................................................................21
Об авторе..............................................................................................22
Иллюстрация на обложке.......................................................................23
От издательства.....................................................................................24Часть 1
Без фреймворка
Глава 1. Магические фронтенд-фреймворки............................................26
1.1. Для чего писать свой фронтенд-фреймворк...................................................27
1.2. Фреймворк, который мы создадим....................................................................28
1.2.1. Функциональность......................................................................................30
1.2.2. План реализации..........................................................................................32
1.3. Общий обзор работы фронтенд-фреймворка.................................................33
1.3.1. Сторона разработчика................................................................................34
1.3.2. SPA на стороне браузера............................................................................37
1.3.3. SSR-приложение со стороны браузера и сервера.............................43
Итоги....................................................................................................................................48
6 Оглавление
Глава 2. Ванильный JavaScript — как в старые добрые времена.................49
2.1. Постановка задачи: приложение «Список задач»........................................50
2.2. Написание приложения.........................................................................................52
2.2.1. Создание проекта.........................................................................................53
2.2.2. HTML-разметка............................................................................................54
2.2.3. Код JavaScript................................................................................................55
Итоги....................................................................................................................................66Часть 2
Простейший фреймворк
Глава 3. Рендеринг и виртуальный DOM.................................................683.1. Разделение обязанностей: манипуляции с DOM и логика
приложения.......................................................................................................................69
3.2. Виртуальная модель DOM...................................................................................71
3.3. Подготовка.................................................................................................................74
3.4. Типы узлов..................................................................................................................75
3.5. Узлы элементов.........................................................................................................76
3.5.1. Условный рендеринг: удаление значений null...................................77
3.5.2. Отображение строк на текстовые узлы................................................78
3.6. Текстовые узлы.........................................................................................................79
3.7. Узлы фрагментов......................................................................................................79
3.7.1. Реализация узлов фрагментов.................................................................80
3.7.2. Тестирование функций виртуального DOM......................................80
3.8. Компоненты: ключевой элемент фронтенд-фреймворков........................82
3.8.1. Что такое компонент?.................................................................................82
3.8.2. Виртуальный DOM как функция состояния.....................................833.8.3. Составление представлений: компоненты как дочерние элементы.....................................................................................................................86
Итоги....................................................................................................................................89
Глава 4. Монтирование и уничтожение виртуального DOM......................91
4.1. Монтирование виртуального DOM..................................................................92
4.1.1. Монтирование виртуальных узлов в DOM........................................94
4.1.2. Монтирование текстовых узлов.............................................................95
4.1.3. Монтирование узлов фрагментов..........................................................96
4.1.4. Монтирование узлов элементов.............................................................98
4.1.5. Добавление обработчика событий.......................................................100
Оглавление 7
4.1.6. Назначение атрибутов..............................................................................102
4.1.7. Пример использования mountDOM()...............................................107
4.2. Уничтожение DOM...............................................................................................108
4.2.1. Уничтожение текстового узла................................................................110
4.2.2. Уничтожение элемента.............................................................................110
4.2.3. Уничтожение фрагмента..........................................................................112
Итоги..................................................................................................................................113
Глава 5. Управление состоянием и жизненный цикл приложения.............114
5.1. Менеджер состояния............................................................................................1185.1.1. От событий JavaScript к командам предметной области приложения.............................................................................................................119
5.1.2. Функции-редьюсеры................................................................................121
5.1.3. Диспетчер......................................................................................................123
5.1.4. Результат.......................................................................................................130
5.2. Интеграция менеджера состояния во фреймворк......................................131
5.2.1. Экземпляр приложения...........................................................................131
5.2.2. Рендерер экземпляра приложения......................................................132
5.2.3. Менеджер состояния экземпляра приложения...............................133
5.2.4. Отправка команд компонентами..........................................................135
5.2.5. Демонтирование приложения...............................................................137
5.2.6. Результат.......................................................................................................137
Итоги..................................................................................................................................139
Глава 6. Публикация и использование первой версии фреймворка...........140
6.1. Сборка и публикация фреймворка..................................................................141
6.2. Короткий пример...................................................................................................142
6.3. Рефакторинг приложения «Список задач»..................................................143
6.3.1. Определение состояния...........................................................................144
6.3.2. Определение функций-редьюсеров.....................................................145
6.3.3. Определение представления..................................................................147
Итоги..................................................................................................................................151
Глава 7. Алгоритм согласования: поиск расхождений в виртуальных деревьях..............................................................................................152
7.1. Три ключевые функции алгоритма согласования......................................156
7.2. Сравнение двух виртуальных DOM...............................................................156
8 Оглавление
7.2.1. Поиск различий..........................................................................................157
7.2.2. Применение изменений...........................................................................161
7.3. Изменения в рендеринге.....................................................................................164
7.4. Поиск различий между объектами..................................................................167
7.5. Поиск различий в массивах................................................................................169
7.6. Сравнение массивов как последовательность операций..........................170
7.6.1. Определение операций, которые могут использоваться..............171
7.6.2. Поиск последовательности операций: алгоритм............................172
7.6.3. Ручная реализация примера ..................................................................174
7.6.4. Реализация алгоритма..............................................................................178
Итоги..................................................................................................................................192
Глава 8. Алгоритм согласования: обновление DOM.................................193
8.1. Монтирование DOM по индексу......................................................................194
8.1.1. Функция insert()........................................................................................195
8.1.2. Текстовые узлы...........................................................................................198
8.1.3. Узлы элементов...........................................................................................198
8.1.4. Узлы фрагментов........................................................................................199
8.2. Обновление DOM..................................................................................................199
8.2.1. Алгоритм согласования...........................................................................200
8.2.2. Равенство виртуальных узлов...............................................................204
8.2.3. Изменение поддерева...............................................................................207
8.2.4. Обновление текстовых узлов.................................................................210
8.2.5. Обновление узлов элементов.................................................................213
8.2.6. Обновление дочерних узлов..................................................................221
8.3. Публикация новой версии фреймворка.........................................................230
8.4. Приложение «Список задач».............................................................................231
8.4.1. Анализ изменений в дереве DOM........................................................231
8.4.2. Инструмент paint-flashing (только в Chrome).................................232
Итоги..................................................................................................................................234Часть 3
Улучшение фреймворка
Глава 9. Компоненты с состоянием........................................................236
9.1. Анатомия компонента с состоянием...............................................................239
9.1.1. Свойства компонента с состоянием....................................................242
9.1.2. Методы компонента с состоянием.......................................................243
Оглавление 9
9.2. Компоненты как классы......................................................................................244
9.3. Компоненты с состоянием..................................................................................247
9.3.1. Обновление состояния и DOM.............................................................250
9.3.2. Результат.......................................................................................................252
9.3.3. Смещение компонента.............................................................................2549.3.4. Обновление DOM с использованием смещения
компонента..............................................................................................................259
Итоги..................................................................................................................................262
Глава 10. Методы компонента................................................................263
10.1. Методы компонентов.........................................................................................266
10.2. Связывание обработчиков событий с компонентом...............................270
10.3. Монтирование DOM с компонентом-хостом............................................271
10.4. Обновление DOM компонентом-хостом....................................................273
Итоги..................................................................................................................................279
Глава 11. Подкомпоненты: взаимодействие через свойства
и события.............................................................................................28011.1. Добавление компонентов как нового типа виртуального
узла DOM.........................................................................................................................283
11.1.1. Обновление метода получения элементов......................................284
11.1.2. Монтирование виртуальных узлов компонентов........................286
11.1.3. Уничтожение виртуальных узлов компонентов...........................292
11.1.4. Обновление виртуальных узлов компонента................................293
11.1.5. Оптимизация рендеринга (опционально)......................................296
11.2. События..................................................................................................................298
11.2.1. Сохранение обработчиков событий в компоненте.......................301
11.2.2. Извлечение свойств и событий для компонента..........................303
11.2.3. Подключение обработчиков событий..............................................305
11.2.4. Генерирование событий.........................................................................308
Итоги..................................................................................................................................309
Глава 12. Cписки с ключами..................................................................310
12.1. Атрибут key............................................................................................................314
12.1.1. Равенство узлов компонентов.............................................................315
12.1.2. Использование атрибута key...............................................................315
12.1.3. Удаление атрибута key из объекта props..........................................316
10 Оглавление
12.2. Расширение решения для узлов элементов................................................317
12.3. Использование атрибута key...........................................................................322
12.3.1. Ошибка № 1: использование индекса в качестве ключа............32212.3.2. Ошибка № 2: использование одного ключа для разных элементов.................................................................................................................325
12.4. Экземпляр приложения....................................................................................326
12.5. Публикация фреймворка..................................................................................328
Итоги..................................................................................................................................329
Глава 13. Хуки жизненного цикла и планировщик...................................330
13.1. Жизненный цикл компонента.........................................................................33213.2. Реализация хуков жизненного цикла onMounted()
и onUnmounted()...........................................................................................................336
13.2.1. Асинхронность хуков.............................................................................337
13.2.2. Контекст выполнения хуков................................................................337
13.2.3. Асинхронность и контекст выполнения..........................................338
13.3. Планировщик........................................................................................................338
13.3.1. Простое (и не совсем работающее) решение.................................340
13.3.2. Задачи, микрозадачи и цикл событий..............................................341
13.3.3. Итерация цикла событий......................................................................342
13.3.4. Основные принципы работы планировщика.................................344
13.3.5. Реализация планировщика...................................................................345
13.3.6. Планирование выполнения хуков жизненного цикла................347
13.4. Публикация 4-й версии фреймворка............................................................349
Итоги..................................................................................................................................350
Глава 14. Тестирование асинхронных компонентов.................................35114.1. Тестирование компонентов с асинхронным поведением:
nextTick()..........................................................................................................................35214.1.1. Тестирование компонента с асинхронным
хуком onMounted()..............................................................................................354
14.1.2. Основные принципы функции nextTick()......................................356
14.1.3. Реализация функции nextTick()........................................................359
14.2. Публикация версии 4.1 фреймворка.............................................................360
14.3. Что дальше?...........................................................................................................361
Итоги..................................................................................................................................362
Оглавление 11
Приложение А. Настройка проекта........................................................363
П.1. Где найти исходный код.....................................................................................364
П.1.1. Извлечение кода каждой главы...........................................................364
П.1.2. Замечания о коде.......................................................................................365
П.1.3. Сообщения о проблемах в коде............................................................365
П.1.4. Самостоятельное исправление ошибки............................................366
П.2. Решения к упражнениям....................................................................................366
П.3. Дополнительный материал...............................................................................366
П.4. Об используемых технологиях........................................................................367
П.4.1. Менеджер пакетов: npm..........................................................................368
П.4.2. Бандлер: Rollup..........................................................................................368
П.4.3. Статический анализатор: ESLint.........................................................368
П.4.4. (Дополнительно) Тестирование: Vitest.............................................369
П.4.5. Язык: JavaScript.........................................................................................369
П.5. Чтение документации..........................................................................................370
П.6. Структура проекта................................................................................................370
П.7. Выбор имени для фреймворка.........................................................................371
П.8. Вариант A: использование командной строки............................................372
П.9. Вариант Б: создание проекта с нуля...............................................................372
П.9.1. Каталог examples.......................................................................................374
П.9.2. Создание runtime-пакета........................................................................375
П.10. Публикация фреймворка в npm....................................................................382
П.10.1. Создание учетной записи npm...........................................................382
П.10.2. Вход в npm.................................................................................................382
П.10.3. Публикация фреймворка.....................................................................382
П.11. Импорт фреймворка через CDN...................................................................383
[solely-soft.top].t210752.torrent
Torrent: Registered [ 2025-05-01 13:35 ] · 664F1227F739895BA601291BA3038B7C79AD5CE6

16 KB

Status: checked
Completed: 1 times
Size: 25 MB
Rate: 
(Vote: 0)
Have thanked: 0  Thanks
Библиотека программиста - Орбайсета Анхель Сола - Создание фронтенд-фреймворка с нуля [2025, PDF, RUS] download torrent for free and without registration
[Profile] [PM]
Forum Topic Author Size
Hardware (books about PCs) "Научно-популярная библиотека школьника" - Л.Н. Буреев, А.Л. Дудко, В.Н. Захаров. - Простейшая микро-ЭВМ. Проектирование. Наладка. Использование. [1989, PDF/DJVU/DOC, RUS] HDD 10 MB
Hacking and security (Библиотека журнала Хакер) - Шалин Павел (Руководитель проекта) - Компьютер глазами хакера [2022, PDF, RUS] Find a password 31 MB
Programming (Библиотека программиста) - Одерски Мартин, Спун Лекс, Веннерс Билл, Соммерс Фрэнк - Scala. Профессиональное программирование, 5-е изд. [2022, PDF, RUS] Programmer 6 MB
Programming 1С:Библиотека разработчика - Хрусталева Е.Ю. - Знакомство с разработкой мобильных приложений на платформе «1С:Предприятие 8». Изд. 3 [2022, PDF, RUS] Programmer 19 MB
CAD (electronics, automation, GAP) 3D Библиотека для DipTrace 3.0 x86 x64 [07.03.2016, MULTILANG +RUS] Download Autocad 2.11 GB
Sample Libraries Alex Soft - Afro Drums (Из "Библиотеки композитора") (WAV) Sound Forge 72 MB
Programming environments, compilers and auxiliary programs Borland C++ Builder 4 Enterprise Edition + Библиотеки и Компоненты [1999, ENG] Download Office 646 MB
Programming Cuantum Technologies - Python and SQL Bible / Библия Python и SQL [2023, PDF/EPUB, ENG] Programmer 32 MB
Display posts:    
Reply to topic

Current time is: 02-Jun 08:27

All times are UTC + 2



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum