This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
basis.jsproduction ready framework
1
Обо мне
@smelukov
Работаю в Avito Делаю большое SPA
Преподаю JS Учу создавать веб-приложения
Люблю JS и жену Но больше жену
Популяризирую basis.js Верю, что basis.js захватит мир
Сергей Мелюков
2
Когда я рассказываю про basis.js
‣ Зачем?! Есть же [X] ‣ basis.js - сложный, а [X] - простой
3
Возможно, я не точно доносил смысл того, что такое basis.js и это
повлекло поспешные выводы
4
Действительно ли можно просто взять любой фреймворк и сразу начать делать веб-приложения?
5
Нет! Любой фреймворк требует
изучения и опыта использования
6
Поговорим о том, какие возможности дает basis.js из
коробки
7
План‣Компоненты ‣Источники данных ‣Локализация ‣ Трекинг событий ‣Инструменты разработки ‣Заключение
8
‣Компоненты ‣Источники данных ‣Локализация ‣ Трекинг событий ‣Инструменты разработки ‣Заключение
<li *ngFor="let item of items; let i = index; trackBy: trackByFn">...</li> <li template="ngFor let item of items; let i = index; trackBy: trackByFn">...</li>
Контролировать источник данных можно при помощи состояний
25
‣ processing - в состоянии синхронизации ‣ deprecated - данные устарели ‣ ready - готов к работе ‣ error - ошибка
26
Примеры использования?
Показываем спиннер, пока загружаются данные
Обновляем устаревшие данные
basis.js - это автоматические источники данных (индексы,
фильтры, etc…)
30
31
Выбранные друзья
items
Доступные друзья
items
‣ model ‣ model ‣ model???
32
Исключим выбранных друзей из всех друзей и получим доступных
друзей
33
allFriends = new Dataset();
favoriteFriends = new Dataset();availableFriends = new Subtract({ minuend: allFriends, subtrahend: favoriteFriends});
34
allFriends = new Dataset();
favoriteFriends = new Dataset();availableFriends = new Subtract({ minuend: allFriends, subtrahend: favoriteFriends});
35
allFriends = new Dataset();
favoriteFriends = new Dataset();availableFriends = new Subtract({ minuend: allFriends, subtrahend: favoriteFriends});
36
Почему не for?
37
Придется реализовать механизм отслеживания изменений
38
Такой механизм уже встроен в наборы basis.js!
39
allFriends = new Dataset();
favoriteFriends = new Dataset();availableFriends = new Subtract({ minuend: allFriends, subtrahend: favoriteFriends});
40
А есть еще что-то, кроме Subtract?
41
42
‣ Merge - объединение коллекций ‣ Filter - фильтрация элементов коллекции ‣ Slice - срез элементов коллекции ‣ Split - деление коллекции на подмножества ‣ etc…
Для агрегации элементов коллекции используются индексы
43
44
‣ Min - минимальное значение коллекции ‣ Max - максимальное значение коллекции ‣ Avg - среднее значение коллекции ‣ Sum - сумма элементов в коллекции ‣ etc…
Манипуляция с данными, а не с DOM DOM - всего лишь отображение
45
‣Компоненты ‣Источники данных ‣Локализация ‣ Трекинг событий ‣Инструменты разработки ‣Заключение