Code Monkey home page Code Monkey logo

react-star-wars's Introduction

🪐 Star Wars Application

🐧 Links


🐶 Available Scripts and Commands

# Install
npm i                    # install dependencies
# General
npm run start            # run app in the development mode
npm run storybook        # run storybook
npm run deploy           # deploy app on Github Pages
# Deploy (part of "deploy" script)
npm run build            # builds the app for production
npm run build-storybook  # storybook build
npm run build-gh-pages   # deploy on Github Pages
# Not used
npm run eject            # remove the single build dependency
npm run deploy-storybook # storybook deploy

🦄 API


🐗 Lighthouse Metrics Performance


🐼 Рассмотренные темы

React.js

  • Разворачивание приложения с create-react-app
  • Состояние компонента (хук useState)
  • Жизненный цикл компонента (хук useEffect)
  • Context API (хук useContext)
  • Рефы и DOM (хук useRef)
  • Мемоизация (хук useCallback)
  • Создание собственных хуков
  • Фрагменты
  • Паттерн Higher-Order Component
  • Паттерн Подъём состояния
  • Обработка событий
  • Controlled Components
  • Подключение CSS, css-modules, библиотека classnames
  • Списки и ключи, Reconciliation Algorithm
  • Отложенная загрузка компонентов React.lazy()
  • Библиотека prop-types для валидации props

React Router

  • Базовый роутинг
  • URL Parameters
  • Query Parameters
  • Обработка страницы 404 (Not Found)
  • Хуки useLocation и useHistory

Redux

  • Базовая структура react-redux-приложения
  • Хуки useDispatch, useSelector
  • Redux Middleware
  • Создание асинхронных action с библиотекой redux-thunk
  • Отслеживание состояния store с redux-devtools-extension

Общее

  • Задание Alias в React-приложении (библиотека react-app-rewire-alias)
  • Деплой приложения на GitHub Pages (библиотека gh-pages)
  • Создание Ui-Kit из визуальных компонентов и публикация в @storybook
  • Библиотека lodash с готовыми функциями
  • Visual Studio Code. Сниппеты и плагины

JavaScript

  • Методы работы с массивами: map, filter, forEach
  • Асинхронность: Promise, Async Functions
  • ES6-модули (import и export)
  • Оператор разворота для объектов (props для компонента)
  • Деструктуризация массивов и объектов
  • Тернарные операторы
  • Работа с Local Storage
  • Работа с API с использованием Fetch

Вёрстка

  • CSS Custom Properties, изменение через JavaScript
  • CSS Filters
  • CSS Flexbox
  • CSS Multi Columns
  • Стилизация скроллбара

🐣 Порядок импортов

  • Библиотеки
  • Контекст
  • HOC
  • UI-компоненты
  • Компоненты
  • Изображения
  • Хуки
  • Роуты
  • Сервисы
  • Утилиты
  • Константы
  • Стили

🐨 TODO

Тестирование и перформанс

  • ESLint + Prettier
  • Тесты: Jest, Enzyme
  • Тесты Cypress
  • Проверка производительности в Lighthouse (Google Chrome)

Технологии

Функционал

  • Перегруппировка компонентов Header при адаптиве
  • Роутер. Анимация при переходе между страницами
  • Добавить шрифты
  • Публикация NPM-пакета для UiKit
  • .bat-файлы для запуска скриптов

NPM

npm i --save classnames lodash prop-types react react-dom react-redux react-router react-router-dom react-scripts redux redux-devtools-extension redux-thunk
npm i --save-dev @storybook/addon-actions @storybook/addon-essentials @storybook/addon-links @storybook/node-logger @storybook/preset-create-react-app @storybook/react @storybook/storybook-deployer gh-pages react-app-rewire-alias react-app-rewired

react-star-wars's People

Contributors

anton-sergeenkov avatar letscode-dev 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.