Автор оригинала: FreeCodeCamp Community Member.
Вступление
Работа над современным приложением JavaScript Powered by Реагировать Потрясающе, пока вы не поймете, что есть пара проблем, связанных с рентом всего контента на стороне клиента.
Во-первых, страница занимает дольше, чтобы стать видимой пользователю. Это связано с тем, что перед нагрузками содержимого все JavaScript необходимо загрузить, и ваше приложение необходимо запустить, чтобы определить, что показать на странице.
Во-вторых, если вы строите общедоступный веб-сайт, у вас есть выпуск контента SEO. Поисковые системы поправляются при запуске и индексации приложений JavaScript, но это намного лучше, если мы сможем отправить их контента, а не позволить им понять это.
Решение оба этих проблем является Рендеринг сервера , Также называется Статический предварительный рендеринг Отказ
Next.js – одна рамка RACT, которая позволяет нам делать все это очень просто, но это не ограничено этим. Он рекламируется своими создателями как Ноль-конфигурация, Single-Command Toolchain для Adct Apps Отказ
Он обеспечивает общую структуру, которая позволяет легко построить приложение React React React и прозрачно обрабатывает рендеринг сервера для вас.
Основные особенности
Вот неиспользующий список основных функций Next.js:
- Reloading Hot Code : Next.js перезагружает страницу, когда она обнаруживает любые изменения, сохраненные на диске.
- Автоматическая маршрутизация : Любой URL отображается на файловую систему (к файлам, указанным в папке
Pages
Папка), и вам не нужна никакая конфигурация (у вас есть параметры настройки). - Один файловые компоненты : Использование Стиль-JSX , полностью интегрирован как построенный одной и той же командой, легко добавлять стили, находящиеся в состав.
- Рендеринг сервера : Вы можете (необязательно) рендерируйте компоненты React на стороне сервера перед отправкой HTML клиенту.
- Совместимость экосистем : Next.js хорошо играет с остальным javaScript, узел и реагировать экосистему.
- Автоматическое расщепление кода : Страницы оказываются только с библиотеками и JavaScript, которые им нужны, не более.
- Предварительная выборка :
Ссылка
Компонент, используемый для соединения разных страниц, поддерживаетПредварительная выборка
опоры, который автоматически предотвращает страницу ресурсов (включая код без вести из-за расщепления кода) на заднем плане. - Динамические компоненты : Вы можете импортировать модули JavaScript и динамически реагируют компоненты здесь Отказ
- Статический экспорт : Использование
Следующий экспорт
Команда Next.js позволяет экспортировать полностью статический сайт из вашего приложения.
Монтаж
Next.js поддерживает все основные платформы: Linux, MacOS, Windows.
Проект Next.js начинается легко с NPM :
npm install --save next react react-dom
или с Пряжа :
yarn add next react react-dom
Начиная
Создать Package.json
Файл с этим контентом:
{ "scripts": { "dev": "next" }}
Если вы запустите эту команду сейчас:
npm run dev
Сценарий поднимет ошибку, жалующуюся на то, что не найти Страницы
папка. Это единственное, что Next.js требует запуска.
Создать пустой Страницы
Папка и запустить команду еще раз. Затем next.js запустит сервер на localhost: 3000
Отказ
Если вы идете к этому URL сейчас, вы будете встретить дружелюбную страницу 404, с хорошим чистым дизайном.
Next.js также обрабатывает другие типы ошибок, например, 500 ошибок.
Создать страницу
В Страницы
Папка, создайте index.js
Файл с простой функциональным компонентом RACT:
export default () => ()Hello World!
Если вы посетите localhost: 3000
Этот компонент автоматически отобразится.
Почему это так просто?
Next.js использует декларативную структуру страниц, которая основана на структуре файловой системы.
Проще говоря, страницы внутри Страницы
Папка, и URL страницы определяется именем файла страницы. Файловая система – это страницы API.
Откройте источник страницы, Вид -> Разработчик -> Просмотреть
Источник с хром.
Как видите, HTML, генерируемый компонентом, отправляется непосредственно в источнике страницы. Он не визуализируется на стороне клиента, но вместо этого он оказывает сервер.
The Next.js Team хотела создать опыт разработчика для создания серверов страниц, аналогичных тому, которое вы получаете при создании основного проекта PHP (где вы просто бросите PHP-файлы, и вы называете их, и они показывают как страницы). Внутренне, конечно, все это совсем другое, но очевидная простота использования ясна.
Добавить вторую страницу
Давайте создадим другую страницу, в Страницы/Contact.js.
export default () => ( )
Если вы укажите браузер на localhost: 3000/contact
Эта страница будет оказана. Как видите, эта страница представляет собой SLO Server.
Горячая перезагрузка
Обратите внимание, как вам не пришлось перезапустить NPM
процесс для загрузки второй страницы. Next.js делает это для вас под капотом.
Рендеринг клиента
Рендеринг сервера очень удобно на вашей первой странице нагрузки по всем причинам, по которым мы видели выше. Но когда дело доходит до навигации внутри сайта, рендеринг на стороне клиента является ключом для ускорения нагрузки страницы и улучшения пользовательского опыта.
Next.js предоставляет Ссылка
Компонент, который вы можете использовать для создания ссылок. Попробуйте связать две страницы выше.
Изменить index.js
К настоящему коду:
import Link from 'next/link'
export default () => ()Hello World!
Contact me!
Теперь вернитесь в браузер и попробуйте эту ссылку. Как видите, страница контакта загружает немедленно, без обновления страницы.
Это навигация на навигации клиента работает правильно, с полной поддержкой для История API. Это означает, что кнопка вашего пользователя не сломается.
Если вы сейчас cmd-Щелкните
Ссылка, та же страница контакта откроется на новой вкладке, теперь оказывается сервером.
Динамические страницы
Корпус хорошего использования для Next.js – это блог. Это то, что все разработчики знают, как это работает, и это хорошо подходит для простого примера способа обработки динамических страниц.
Динамическая страница – это страница, которая не имеет фиксированного содержимого, но вместо этого отображается некоторые данные на основе некоторых параметров.
Изменить index.js
к:
import Link from 'next/link'
const Post = (props) => (
export default () => ()My blog
Это создаст серию постов и заполнит параметр запроса на заголовку на заголовок поста:
Теперь создайте post.js
Файл в Страницы
Папка и добавить:
export default (props) => ({props.url.query.title}
)
Теперь нажатие на один пост сделает название поста в H1
тег:
Вы можете использовать чистые URL без параметров запроса. Компонент Next.js Link помогает нам, принимая как
Атрибут, который вы можете использовать для пропускания слизняка:
import Link from 'next/link'
const Post = (props) => (
export default () => ()My blog
CSS-in-js
Next.js по умолчанию предоставляет поддержку Стиль-JSX , который представляет собой решение CSS-In-JS, предоставленное той же командой разработки. Но вы можете использовать любую библиотеку, которую вы предпочитаете, например Слифовые компоненты Отказ
Экспорт статического сайта
Приложение Next.js легко может быть экспортировано как статический сайт. Затем можно развернуть на одном из супер быстрых статических хостов сайта, например NetLify или Хостинг Firebase без необходимости настроить среду узла.
Этот процесс требует, чтобы вы объявили URL-адреса, которые составляют сайт, но это Простой процесс Отказ
Развертывание
Легко создать добычу полезной копии приложения без исходных карт или других инструментов разработки, которые не нужны в финальной сборке.
В начале этого учебника вы создали Package.json
Файл с этим контентом:
{ "scripts": { "dev": "next" }}
Что было способом запустить сервер развития, используя NPM запустить dev
Отказ
Теперь просто добавьте следующий контент на Package.json
вместо:
{ "scripts": { "dev": "next", "build": "next build", "start": "next start" }}
и подготовить ваше приложение, бегая NPM запустить сборку
и NPM запустить начало
Отказ
Сейчас
Компания Share Next.js предоставляет удивительную услугу хостинга для Node.js приложений, называемых Сейчас Отказ
Конечно, они интегрируют как их продукты, чтобы вы могли легко развернуть приложения Next.js, Как только вы уже установили бежать сейчас
Команда в папке приложения.
За кулисами теперь устанавливает сервер для вас, и вам не нужно ничего беспокоиться – просто ждите, пока ud ud ud ud ur чтобы быть готовым.
Зоны
Вы можете настроить несколько экземпляров Next.js для прослушивания разных URL. Тем не менее, приложение к внешней пользователю просто будет выглядеть так, как будильник на одном сервере: https://github.com/zeit/next.js/#multi-zones.
Плагины
Next.js имеет список плагинов здесь Отказ
Читайте больше на Next.js
Я не могу описать каждую особенность этой великой рамки, а главное место для Подробнее о Next.js – Проект Readme на Github Отказ