- Oszczędza zasobożerneoperacje
na DOM
- Drzewo elementów może być
renderowane bez przeglądarki
- React
- Mithril
- virtual-dom (np. w Mercury)
VIRTUAL DOM
http://calendar.perfplanet.com/2013/diff/
VIRTUAL DOM
9.
- Natywnie
- ShadowDOM
- Importy HTML
- Własne elementy
- Podejścia
- Polymer
- React
- Angular 2
www.webcomponents.org
WEB COMPONENTS
WEB COMPONENTS
10.
- Tylko WIDOK
-Szybko rozwijana technologia
- Reużywalność komponentów
KILKA SŁÓW O REACT
REACT
11.
- Korzystamy zrealnych danych
- Nie zajmujemy się stylami
- Zaczniemy od widoków
- Przeniesiemy dane jako stan aplikacji
REZULTAT WARSZTATÓW
APLIKACJA
12.
- Jak stworzyćkomponent
- Podstawy JSX
- DX Reacta
- Jak przekazać propsy do komponentu
PIERWSZY KOMPONENT
APLIKACJA (REACT) - KROK 1
13.
- Jak stworzyćkomponent dla każdego elementu tablicy
- Jak React optymalizuje tablice obiektów
LISTA ELEMENTÓW, PSEUDO-PĘTLE
APLIKACJA (REACT) - KROK 2
14.
- Jak działastan komponentu
- Jak podpiąć interwały, zaktualizować DOM
- Cykl życia komponentu
DYNAMICZNY KOMPONENT - ZEGAR
APLIKACJA (REACT) - KROK 3
15.
- Użyjemy Reactdla SVG
- Pokażemy incydenty na osi czasu
SVG TIMELINE
APLIKACJA (REACT) - KROK 4
16.
- Nasłuchiwanie nazdarzenia DOMu w React
INTERAKCJA Z UŻYTKOWNIKIEM
APLIKACJA (REACT) - KROK 5
17.
- Jak używaćdodatku React Perf
- Cykl życia komponentu
OPTYMALIZACJA KOMPONENTÓW
APLIKACJA (REACT) - KROK 6
18.
- Wysyłamy wiadomość(zwyczajny łańcuch znaków) i wyświetlamy listę wiadomości
- Są przygotowane style dla chatu:
- .chat - główny blok chatu
- .chat__messages - lista wiadomości
- .chat__messages > li - wiadomość
- .chat__messages > li > strong - nazwa użytkownika
- .chat__form - formularz do wysyłania wiadomości, a w środku button i input
ZADANIE - CHAT
APLIKACJA (REDUX) - KROK 7
19.
- Jedna zimplementacji Flux
- Uni-directional flow
- Jeden stan dla całej aplikacji
REDUX
REDUX
20.
- Jednokierunkowy przepływdanych zapewnia kolejność działań
- Przy takim samym stanie aplikacji zadziała ona tak samo
UNI-DIRECTIONAL FLOW
REDUX
Actions Reducers Store View
subscribe
dispatch
Any other
data sources
dispatch
21.
- Definiują informacjęktóra jest potrzebna do wykonania danej akcji
- Jedyną obowiązkową informacją jest type nazwa akcji
- Action creators budują akcję na podstawie parametrów
AKCJE
REDUX
Actions Reducers Store View
subscribe
dispatch
{
type: 'new incident',
incident: {
playtime: 6000,
name: 'goal',
team: 'home'
}
}
22.
- Wykonują akcjęzmieniając stan całej aplikacji
- Po zmianie stanu dobrą praktyką jest stworzenie nowego obiektu ze stanem aplikacji
REDUKTORY (REDUCERS)
REDUX
Actions Reducers Store View
subscribe
dispatch
function (state, action) {
if (action.type === 'add incident') {
return {
...state,
incidents: state.incidents.concat(action.incident)
}
}
return state
}
23.
- Centralny punktdanych
- Pozwala na redukcję danych, subskrypcję do zmian i wykonywanie akcji
STORE
REDUX
Actions Reducers Store View
subscribe
dispatch
store = createStore(function (action, state) {
console.log('Action', action.type, 'executed')
return state
}, {})
store.dispatch({ type: 'match received' })
24.
- Stworzyliśmy storew którym przechowamy incydenty
- Ręcznie wykonamy akcję i zobaczymy jak działa Redux DevTools
TWORZENIE STORE’A
APLIKACJA (REDUX) - KROK 8
Actions Reducers Store View
subscribe
dispatch
25.
- Napisaliśmy kreatorakcji i reduktor związane z incydentami
- Ręcznie wykonujemy akcję i sprawdzamy stan aplikacji
ACTION CREATOR I REDUCER
APLIKACJA (REDUX) - KROK 9
Actions Reducers Store View
subscribe
dispatch
26.
- Korzystając zreact-redux połączymy nasze komponenty z Reduxem
- Połączymy się z serwerem z danymi za pomocą WebSocketów
- Wyświetlimy informacje o meczu
POŁĄCZENIE Z WIDOKIEM!
APLIKACJA (REDUX) - KROK 10
Actions Reducers Store View
subscribe
dispatch
27.
- Wysyłamy anonimowąwiadomość do użytkowników i wyświetlamy odebrane
- Przez WebSocket jest udostępniony event message, który dostarcza wiadomość, a
emitować nowe wiadomości można tym samym eventem. Wiadomość jest zwyczajnym
łańcuchem znaków.
ZADANIE - CHAT MIĘDZY UŻYTKOWNIKAMI
APLIKACJA (REDUX) - KROK 11
Actions Reducers Store View
subscribe
dispatch