Opis
Repozytorium startowe aplikacji - Bold FE Hackathon#1. Aplikacja wykorzystuje vue + vuetify. Docelowo aplikacja ma zostać zrealizowana przy pomocy zdalnej "bazy danych" firebase przy wykorzystaniu VueFire oraz w oparciu o Vuex, czyli wzorzec zarządzania stanem aplikacji Vue.
Instalacja
- Zainstaluj środowisko uruchomieniowe JavaScript Node.js + npm
- Zainstaluj vue command line interface: npm install --global vue-cli
- Zainstaluj zależności które wymagane są przez projekt: npm install
Uruchomienie
Po poprawnej instalacji wszystkich potrzebnych modułów uruchomienie środowiska deweloperskiego (serwer + livereload) powinno być możliwe poprzez użycie: npm run dev
Opis aplikacji
Część 1: VUE - przykładowa aplikacja (architektura aplikacji, events bubbling issue)
-
Stworzenie projektu firebase, konfiguracja z vue cli, pobranie danych i wyświetlenie
- pobranie "zerowego stanu aplikacji z git"
- założenie nowego "projektu" w firebase
- import danych (plik z danymi: static/data.json) do firebase
- zaimportowanie configa z firebase do projektu
- nawiązanie połączenia z bazą i wyświetlanie pobieranych danych
-
Stworzenie głównego komponentu
- Stworzenie komponentu tabeli danych według wzorca (wyświetlanie atrybutów po lewej, następne kolumny to kolejne produkty)
- Wyodrębnienie "komponentu produktowego" (zdjęcie, przyciski, nazwa, ceny)
- Import komponentu produktu do głównego komponentu i przekazanie danych
- *zadanie dodatkowe: style napisane w BEM (blok element modyfikator) w SASS (wymaga dodania do konfiguracji webpacka preprocesora CSS)
-
Wyodrębnienie child komponentów z "komponentu produktowego": image, price, title, availability, buttons
- przygotowanie plików małych komponentów
- zaimportowanie ich do komponentu produktu
- obsłużenie różnych stanów dla komponentu price i availability
- stany price: simple, special, special + old price (przekreslona cena)
- stany availability: dostepny, niedostepny (qty > 0, qty === 0)
-
podzielenie button na dwa oddzielne buttony i obsłużenie eventu
- stworzenie komponentu button dodaj do koszyka
- stworzenie przycisku
- stworzenie inputa (qty)
- obsłużenie emitowania zdarzenia z kliknięciem przycisku "Do koszyka"
- stworzenie komponentu button dodaj do wishlisty
- przygotowanie html przycisku
- obsłużenie emitowania zdarzenia kliknięcia przycisku
- import child komponentów do głównego komponentu buttons
- obsłużenie reakcji na zdarzenia emitowane z child buttonów (events bubbling)
- stworzenie komponentu button dodaj do koszyka
-
dodanie funkcjonalności wyświetlania listy koszyka / listy życzeń
- przygotowanie komponentów
- import do głównego modułu
- aktualizacja list w zależności na kliknięcia w przyciski
- wyświetlanie produktów dodanych do konkretnej listy
- *zadanie dodatkowe: zapisywanie stanu koszyka w firebase
Część 2: VUEX (zmiana architektury)
- Teoria na temat VUEX
- Podpięcie VUEX do projektu
- instalacja modułu node
- import do głównego modułu
- Przygotowanie metod
- obsłużenie dodaj / usuń itemu z kolekcji + pobranie całej kolekcji koszyka
- obsłużenie dodaj / usuń itemu z kolekcji + pobranie całej kolekcji wishlisty
- Wyświetlanie wszystkich danych na podstawie globalnego store (produkty, atrybuty)