Рубрики
Без рубрики

Верхние React BoaterPlates для 2021

В последнее время React.js видела себя в повышении популярности и стать одним из самых любимых … Теги от реагирования, JavaScript, Tooling, WebDev.

В последнее время React.js Увидел себя в повышении популярности и стать одной из самых близких передних структур всех времен. Мы будем смотреть на эти 5 котельных для реагирования сегодня:

1️⃣ Create-React-App

2️⃣ Create-Next-App

3️⃣ React-Vite

4️⃣ Реагистрационная котельная

5️⃣ React-Starter-Kit

Если вы в конечном итоге понравить эту статью, обязательно следите за мной на 🐦 Twitter Где я регулярно разделяю потрясающие учебные ресурсы, такие как этот:

Kapeel 💙 Tymdercript @kokaneka Todays Todays Todays Todays There’s Thardary # Операторы в # JavaScripti’m создают #sketchnotes для #Javascript Concepts из книги: «Вы не знаете JS (@ydkjs) ” @Getify, используя @excaLidRaw by @ vjeux #webdev #webdevelopment # 100daysofcode 12:01 PM – 13 июл 2020

Create-React-App

Создать приложение React ( CRA ) Ваша самая безопасная ставка, когда речь идет о загрузке ваших приложений RACT, так как официальный сценарий нагрузки, рекомендованный реагированной документацией. Согласно официальному сайту документации:

Create App App – это комфортная среда для изучения реагирования и является лучшим способом начать создание нового одностраничного приложения в реакции.

Начиная

Для того, чтобы настроить новое приложение, используя Create-React-App мы запускаем команду

npx create-react-app my-app

NPX Используется команда здесь отличается от NPM команды. NPX обозначает Узел пакет выполняется который автоматически устанавливается на систему при установке NPM Версия 5.2.0 или выше. Специальность NPX Команда в том, что он может выполнить любой пакет из NPM Репозиторий без необходимости установки пакета заранее.

Эта команда создает новую папку, называемую My-App В текущем каталоге и устанавливает реактивный проект внутри этой папки. Чтобы запустить сервер разработки и работать над приложением, мы используем команду:

npm start

А когда удовлетворены изменениями кода, мы можем использовать:

npm run build

Который генерирует оптимизированную построить Папка, которая может быть развернута, где бы мы ни хотели провести наше приложение.

Основные характеристики

  • Создайте приложение с шаблоном по вашему выбору, добавив команду создания с помощью --template флаг
npx create-react-app my-app --template [template-name]
  • Создайте приложение с TeampScript Поддержка, выбирая TeampScript шаблон:
npx create-react-app my-app --template typescript
  • Поддержка современных функций JavaScript, таких как Async/await , Отдых/распространение , Динамический импорт Прямо из коробки, которая облегчает жизнь разработчика.
  • Прямая поддержка файлов CSS и модулей CSS и поддержки SCSS с помощью Узел-сасс Отказ
  • Поддержка маршрутизации Использование Реагистрационный маршрутизатор и кодовая поддержка через динамический импорт.

Извлечение из создания-реактивного приложения

Пока простота, что Create-raction-app Приносит к столу очень ценится, есть некоторые сценарии, в которых нам нужен дополнительный контроль над нашей кодовой базой и его функциями. Чтобы обрабатывать такие сценарии, Create-ract – App предоставляет нам возможность настроить инструмент сборки или других конфигураций, запустив скрипт:

npm run eject

Это одностороннее управление, которая удаляет один React-Scripts Зависимость, которая сделала всю тяжелую поднятие за кулисами, и вернуть все зависимости и транзитивные зависимости, такие как WebPack, Babel etc обратно в Package.json, где пользователь может иметь полный контроль над ними. Зависимости перед выбросом:

"dependencies": {
  "@testing-library/jest-dom": "^5.11.4",
  "@testing-library/react": "^11.1.0",
  "@testing-library/user-event": "^12.1.10",
  "papercss": "^1.8.2",
  "react": "^17.0.1",
  "react-dom": "^17.0.1",
  "react-scripts": "4.0.2",
  "web-vitals": "^1.0.1"
},

Зависимости после выброса:

"dependencies": {
  "@babel/core": "7.12.3",
  "@pmmmwh/react-refresh-webpack-plugin": "0.4.3",
  "@svgr/webpack": "5.5.0",
  "@testing-library/jest-dom": "^5.11.4",
  "@testing-library/react": "^11.1.0",
  "@testing-library/user-event": "^12.1.10",
  "@typescript-eslint/eslint-plugin": "^4.5.0",
  "@typescript-eslint/parser": "^4.5.0",
  "babel-eslint": "^10.1.0",
  "babel-jest": "^26.6.0",
  "babel-loader": "8.1.0",
  "babel-plugin-named-asset-import": "^0.3.7",
  "babel-preset-react-app": "^10.0.0",
  "bfj": "^7.0.2",
  "camelcase": "^6.1.0",
  "case-sensitive-paths-webpack-plugin": "2.3.0",
  "css-loader": "4.3.0",
  "dotenv": "8.2.0",
  "dotenv-expand": "5.1.0",
  "eslint": "^7.11.0",
  "eslint-config-react-app": "^6.0.0",
  "eslint-plugin-flowtype": "^5.2.0",
  "eslint-plugin-import": "^2.22.1",
  "eslint-plugin-jest": "^24.1.0",
  "eslint-plugin-jsx-a11y": "^6.3.1",
  "eslint-plugin-react": "^7.21.5",
  "eslint-plugin-react-hooks": "^4.2.0",
  "eslint-plugin-testing-library": "^3.9.2",
  "eslint-webpack-plugin": "^2.1.0",
  "file-loader": "6.1.1",
  "fs-extra": "^9.0.1",
  "html-webpack-plugin": "4.5.0",
  "identity-obj-proxy": "3.0.0",
  "jest": "26.6.0",
  "jest-circus": "26.6.0",
  "jest-resolve": "26.6.0",
  "jest-watch-typeahead": "0.6.1",
  "mini-css-extract-plugin": "0.11.3",
  "optimize-css-assets-webpack-plugin": "5.0.4",
  "pnp-webpack-plugin": "1.6.4",
  "postcss-flexbugs-fixes": "4.2.1",
  "postcss-loader": "3.0.0",
  "postcss-normalize": "8.0.1",
  "postcss-preset-env": "6.7.0",
  "postcss-safe-parser": "5.0.2",
  "prompts": "2.4.0",
  "react": "^17.0.1",
  "react-app-polyfill": "^2.0.0",
  "react-dev-utils": "^11.0.2",
  "react-dom": "^17.0.1",
  "react-refresh": "^0.8.3",
  "resolve": "1.18.1",
  "resolve-url-loader": "^3.1.2",
  "sass-loader": "^10.0.5",
  "semver": "7.3.2",
  "style-loader": "1.3.0",
  "terser-webpack-plugin": "4.2.3",
  "ts-pnp": "1.2.0",
  "url-loader": "4.1.1",
  "web-vitals": "^1.0.1",
  "webpack": "4.44.2",
  "webpack-dev-server": "3.11.0",
  "webpack-manifest-plugin": "2.2.0",
  "workbox-webpack-plugin": "5.1.4"
}

Обычно это не так общей для извлечь от Create-React-App Но хорошо иметь этот вариант, если вы знаете, что вы делаете.

Сильные стороны

  • Create-raction-app Официальная рекомендация для нагрузки реагированных приложений реагированной командой реагирования.
  • Охватывает все основные функции без дополнительных зависимостей.
  • Комплексная документация сайта.
  • Убирает хлопот от разработчика

Таким образом, если вы ищете пробовный и проверенный способ начать работу с развитием реагирования без хлопот Делать вещи сами Тогда Create-raction-app это инструмент для использования.

уязвимые точки

  • Не очень контролирует более тонкие аспекты репозитория (если не выбрасывается)

create-next-app

Create app app – это приличный путь к загрузке общего спа с рендерингом на стороне клиента, но если требование немного фантастика, как Серверный рендеринг или Статическое поколение сайта , тогда лучший способ начать работу, использует create-next-app Отказ Это простой инструмент CLI для работы с Next.js проекты.

Начиная

Чтобы получить генерацию котельной, нам просто нужно запустить команду:

npx create-next-app

После этого мы отвечаем на анкету и в конце этого, для нас устанавливается репо Next.js Code. Также есть положение для загрузки приложения на основе любого примера с официальной страницы документации, используя или --example флаг.

Для запуска сервера Dev, мы запустим:

npm run dev

Это поднимает домашнюю страницу DEV Server: В Code Repo create-next-app Создает структуру папки, которая выглядит что-то подобное: Любые файлы JavaScript, созданные в страницы Каталог Создание маршрутов в приложении Next.js с тем же именем, что и у файла. Обязательные активы (например, изображения) должны быть размещены внутри публичный папка. CSS и менее поддерживаются по умолчанию.

Основные характеристики

Если ваше требование является то, что скорее статический сайт, и вы ищете твердое реагированную структуру, которая представляет собой путь к другим с точки зрения Серверный рендеринг и Статическое поколение сайта , определенно продолжайте с помощью Next.js, и вы не будете разочарованы.

Сильные стороны

  • Автоматическая/динамическая маршрутизация через конвенцию именования файлов и getstaticpathss () метод.
  • Создание статического сайта поддерживается через getstaticprops () метод.
  • Серверный рендеринг через getserversideprops () метод.
  • Быстрое обновление и извлекать Поддержка из коробки.

Уязвимые точки

  • Не оптимизирован в случае приложений, которые нуждаются в постоянных данных и освежающих.
  • Существует кривая обучения, связанная с получением аспектов SSR, которые уникальны для Next.js

реагировать

Vite является относительно новым кандидатом в пространстве инструментов Frontend Framework, которое создается/поддерживается Эван ты Vue. JS слава. Vite – это универсальное решение, которое можно использовать для загрузки проектов из нескольких технологий с использованием шаблонов, которые в настоящее время поддерживают Vue, React, Preact и т. Д.

Начиная

Для объема этой статьи мы рассмотрим создание реагированных проектов. Для того, чтобы инициировать создание репо, мы бежим

npm init @vitejs/app react-vite

который поднимает это меню выбора: Выбор . реагировать Опция создает реактивный проект в каталоге. Что интересно отметить, что требуется примерно секунду, чтобы создать репо, в отличие от других инструментов, которые занимают несколько секунд для всего процесса. После настройки REPO нам нужно перейти в этот каталог и установить Vite пакет в качестве dev зависимости.

cd react-vite
npm i --save-dev vite

Затем мы можем запустить скрипт Dev AS:

npm run dev

Который приносит UI по умолчанию на localhost: 3000 Отказ

Обратите внимание, что для правильной работы скрипта DEV для правильной работы мы должны быть на последней версии сборки Узел Это поддерживает Working_Threads , иначе мы получаем эту ошибку, пытаясь запустить скрипт Dev:

Cannot find module 'worker_threads' 

Может быть установлена последняя версия NPM, и несколько версий, установленных в вашей системе, можно управлять с помощью NVM. .

Основные характеристики

Vite отличается от других инструментов котельной в этом списке, так как он был построен из заземления, сохраняя Опыт разработчика (Dx) в виду. Цитирование от официальной документации Vite:

Vite (французское слово для «быстрой», произносится/VIT/) – новая порода инструмента сборки Frontend, который значительно улучшает опыт разработки Frontend.

Несмотря на то, что Vite поддерживает исчерпывающий набор Список функций Основная проблема, которую вита решила решить, была проблема, который большинство Инструменты объединения (думаю WebPack , посылка ) Лицо в масштабе: всякий раз, когда кодовое основание растет до приличного размера, Bundler требуется несколько минут, чтобы раскрутить локальный экземпляр сервера Dev. Также в отношении обновления кода и получение просмотра Live, даже с оптимизациями, такими как Замена горячего модуля (HMR) на месте, он по-прежнему требуется несколько секунд для изменения кода, чтобы отразить на UI, если критический файл изменен. Vite решает эти проблемы:

  1. Не вкладывая код вообще, кроме как извлечь выгоду из наличия поддержания узкого модуля ES на большинстве современных браузеров.
  2. Классификация всей базы кода в Библиотечный код и Исходный код И предварительно построение библиотечного кода, используя esbuild.
  3. Выступая HMR Находящиеся на сетевые модули ES, которые значительно снижают границу HMR, чтобы быть недействительным и улучшает производительность.

В то время как сервер разработки не подключается кодом, сценарии производства все еще создают пучок, используя Рулон который высоко оптимизирован.

Сильные стороны:

  • Основное внимание на опыте разработчика (DX)
  • Типписная поддержка из коробки
  • Активное развитие и обслуживание Evan You и команда
  • Поддержка импорта CSS с модулями CSS, а также поддержка препроцессора.
  • Wasm и Веб-пользователь служба поддержки

Следовательно, если вы ищете что-то, что находится на кровотеченном кромке, насколько это возможно, будучи разработчика, будущие улучшения и повышения эффективности, React-Vite это ваш инструмент.

Уязвимые точки

  • Предстоящие технологии, выходящие на кровотеченном краю процесса сборки, и, следовательно, не могут быть много разработчиков в отрасли, которые действительно понимают его, чтобы настроить процесс при необходимости
  • Не так популярны и по сравнению с чем-то вроде WebPack Это означает, что может быть сравненно меньше документации и поддержки в Интернете.

Реактивно-котельная

Другой инструмент, который стоит добавить в список, когда речь идет о настройке проекта React, является React – Boilerplate Отказ На своей посадочной странице React – Boilerplate Предоставляет это описание:

Быстрая настройка для новых ориентированных на производительность, Offline-First.js Applications

Начиная

В то время как основное помещение на основе которого построена библиотека такая же, как и другие, шаги для настройки нового репозитория кода немного отличаются. Во-первых, нам нужно клонировать настройку REPO:

git clone https://github.com/react-boilerplate/react-boilerplate.git my-react-boilerplate

Далее нам нужно перейти в клонированный репозиторий и запустить сценарий настройки:

cd my-react-boilerplate
npm run setup

А также Затем начальный скрипт, чтобы выгнать сервер Dev:

npm start

Это вызывает эту домашнюю страницу:

Основные характеристики

Основное различие между другими инструментами в этом списке и React – Boilerplate Это, пост настроен, мы получаем высоко мнение , но очень высоко Облегченный Настройка разработки с поддержкой функций для Реагистрационный маршрутизатор для маршрутизации, redux Для государственного управления, Redux-Saga Для усиления redux, повторно Для оптимизации Иммер для неизменности и Слифовые компоненты для быстрого отслеживания развития. Даже структура проекта весьма самоуверена с разделением между Контейнеры (подключен к магазину Redux) и Компоненты Это чистые компоненты.

Сильные стороны:

  • Настройка полноценного репо с маршрутизацией, государственным управлением и другими оптимизациями и т. Д.
  • Поддерживается Макс Стокбер , другое большое имя в экосистеме реагирования.
  • Установленные компоненты поддерживают из коробки.

Уязвимые точки:

  • Не догоняя последние тенденции в развитии, последний коммит на хранилище был в марте 2019 года
  • Высокоизвестно

Имея в виду, если вам нужно начать работу с разработкой реагирования, нуждающимся на всех колоколах и свистках, связанных с проектом React прямо с самого начала, и не против связаны с X Технология для достижения результата Y Подход, который предварительно определяется создателями библиотеки, то React – Boilerplate является сильным кандидатом.

интеллектуальный набор

Наконец, давайте посмотрим на React-Starter-Kit, который описывает себя как ** Изоморфные * Веб-приложение Boeterplate *. Домашняя страница также упоминает, что React-Starter-Kit очень высоко мнение Это означает, что он уже выбрал Tech Stack для нас, который содержит Node.js С Экспресс , Graphql , так далее. Таким образом, он берет нагрузку от пользователей котельной, принимая решение для нас, одновременно убедившись, что мы следим за текущей передовой практикой в отрасли.

Начиная

Чтобы начать работу с котельной, нам нужно клонировать новейший репозиторий и использовать это в качестве отправной точки:

git clone -o react-starter-kit -b master --single-branch https://github.com/kriasoft/react-starter-kit.git MyApp

Затем перейдите в созданную папку и установите зависимости:

cd MyApp
yarn install

И запустите сервер Dev следующим образом:

yarn start

Это поднимает домашнюю страницу котельной:

Основные характеристики

Главной особенностью этой котельной является то, что он очень настроен, но весьма настраивается. В дополнение к исчерпывающей структуре файла, которую мы получаем в настройке REPO:

.
├── /build/                     # The folder for compiled output
├── /docs/                      # Documentation files for the project
├── /node_modules/              # 3rd-party libraries and utilities
├── /public/                    # Static files which are copied into the /build/public folder
├── /src/                       # The source code of the application
│   ├── /components/            # React components
│   ├── /data/                  # GraphQL server schema and data models
│   ├── /routes/                # Page/screen components along with the routing information
│   ├── /client.js              # Client-side startup script
│   ├── /config.js              # Global application settings
│   ├── /server.js              # Server-side startup script
│   └── ...                     # Other core framework modules
├── /test/                      # Unit and end-to-end tests
├── /tools/                     # Build automation scripts and utilities
│   ├── /lib/                   # Library for utility snippets
│   ├── /build.js               # Builds the project from source to output (build) folder
│   ├── /bundle.js              # Bundles the web resources into package(s) through Webpack
│   ├── /clean.js               # Cleans up the output (build) folder
│   ├── /copy.js                # Copies static files to output (build) folder
│   ├── /deploy.js              # Deploys your web application
│   ├── /postcss.config.js      # Configuration for transforming styles with PostCSS plugins
│   ├── /run.js                 # Helper function for running build automation tasks
│   ├── /runServer.js           # Launches (or restarts) Node.js server
│   ├── /start.js               # Launches the development web server with "live reload"
│   └── /webpack.config.js      # Configurations for client-side and server-side bundles
├── Dockerfile                  # Commands for building a Docker image for production
├── package.json                # The list of 3rd party libraries and utilities
└── yarn.lock                   # Fixed versions of all the dependencies

А также Количество сценариев, которые мы выходите из коробки:

"scripts": {
    "precommit": "lint-staged",
    "lint-js": "eslint --ignore-path .gitignore --ignore-pattern \"!**/.*\" .",
    "lint-css": "stylelint \"src/**/*.{css,less,styl,scss,sass,sss}\"",
    "lint": "yarn run lint-js && yarn run lint-css",
    "fix-js": "yarn run lint-js --fix",
    "fix-css": "yarn run lint-css --fix",
    "fix": "yarn run fix-js && yarn run fix-css",
    "flow": "flow",
    "flow:check": "flow check",
    "test": "jest",
    "test-watch": "yarn run test --watch --notify",
    "test-cover": "yarn run test --coverage",
    "coverage": "yarn run test-cover && opn coverage/lcov-report/index.html",
    "clean": "babel-node tools/run clean",
    "copy": "babel-node tools/run copy",
    "bundle": "babel-node tools/run bundle",
    "build": "babel-node tools/run build",
    "build-stats": "yarn run build --release --analyse",
    "deploy": "babel-node tools/run deploy",
    "render": "babel-node tools/run render",
    "serve": "babel-node tools/run runServer",
    "start": "babel-node tools/run start"
  }

Библиотека также гарантирует, что она обеспечивает несколько рецепты которые похожи на официальные гиды, которые объясняют Как выполнить X? во время работы с React-bootstrap что делает его супер удобным.

Сильные стороны:

  • Изоморфная котельная, которая учитывает операции, которые будут выполняться на сервере (Node.js), как SSR.
  • Поддержка для Graphql через Аполлон
  • Рецепты для реализации общих случаев использования.
  • Реагирование тестирования через Фермент и статический тип проверки через Поток

Уязвимые точки:

  • Большое количество зависимостей, которые могут разлучать размер расслоения, даже если не используется
  • Высокоизвестно

С этими функциями, которые React - Boilerplate Готово предложить и на заказ, которые он обеспечивает, стоит дать выстрелу, если мы ищем изоморфную бойную табличку, отличную от create-next-app Отказ

Заключение

С этим мы завершаем раунд для Верхние React BoaterPlates в 2021 Отказ Как мы видим, каждый из них поставляется с собственным набором Вещи Это лучше всего а также Вещи это не так хорошо в Отказ Это означает, что все сводится к корпусу использования под рукой. Это также означает выбор, который мы производим, будет сильно варьироваться в зависимости от характера конечного результата, на которую мы стремимся, но, по крайней мере, хорошая вещь, что мы не кратко выбираем.

Оригинал: “https://dev.to/comscience/top-react-boilerplates-for-2021-21ce”