Coder Social home page Coder Social logo

warsawjs-workshop-11-smart-cookbook's Introduction

Warsawjs Workshop 11

To repozytorium zawiera kod przygotowany na warsztaty #11 WarsawJS - Zaawansowany React.js

Usage

npm install    # only first time
npm start

# in separate terminal
npm run api

# now application should be available at localhost:3000

Plan

Skonfigurowanie projektu:

  • Stworzenie projektu o nazwie: warsawjs-workshop-11-smart-cookbook
  • Podłączenie bibliotek: create react app, redux, redux-logger

Komponent wyświetlający i pobranie listy przepisów:

  • Zapytanie do serwera przy użyciu: redux-api-middleware
  • Zapisanie danych w redux store
  • Wyświetlenie listy pobranych przepisów za pomocą semantic-ui lub innego gotowego zestawu komponentów

Filtrowanie przepisów:

  • Dodanie dropdown
  • Wyciągnięcie wszystkich dostępnych składników z listy pobranych przepisów za pomocą selektora
  • Dodawanie i usuwanie składników wybranych w dropdown do redux store
  • Wyświetlenie tylko przepisów zawierających wybrane składniki za pomocą selektora
  • Implementacja memoizacja selectora za pomocą biblioteki reselect

Normalizacja i middleware:

  • Wyłapanie akcji zwracającej listę przepisów w przygotowanym middleware
  • Normalizacja danych zwróconych z api za pomocą normalizr
  • Dostosowanie selektorów pobierających przepisy do nowego kształtu redux store
  • Podłączenie do redux store każdego przepisu z osobna w celu ograniczenia niepotrzebnych przeładowań komponentów [link]

Wyświetlanie pojedynczego przepisu:

  • Konfiguracja bibliotek react-router-dom
  • Dodanie routingu w którym na stronie głównej wyświetlona będzie lista przepisów oraz nowej strony pojedynczy przepis.

Pobieranie listy wycen produktów:

  • Konfiguracja redux-saga
  • Pobieranie wyceny produktów przepisu dla każdego sklepu w osobnym zapytaniu
  • Wyświetlanie sumarycznej ceny produktów
  • Implementacja przerywania trwających zapytania po powrocie do listy przepisów

Inicjalizacja aplikacji z redux-saga:

  • Pobieranie listy przepisów na starcie aplikacji niezależnie od odwiedzanej podstrony
  • Dodanie komponentu wyświetlającego informacje o ładowaniu zanim pobiorą się przepisy z serwera
  • Wydzielenie higher order component z opisaną logiką

Limitowanie wyświetlanej listy przepisów:

  • Dodanie komponentu function as child dostarczającego logikę przechowywania limt i jego zwiększania i zmniejszania

warsawjs-workshop-11-smart-cookbook's People

Contributors

mbury avatar valian avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.