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

Откройте для себя Next.js и напишите серверные приложения на борту Easy

Заинтересованы в изучении JavaScript? Получите мою книгу на jshandbook.comIntRoductionWorking на современном приложении JavaScript Powered by React – это потрясающе, пока вы не поймете, что есть пара проблем, связанных с рендером всего контента на стороне клиента. Во-первых, страница занимает дольше, чтобы стать видимой пользователю.

Автор оригинала: 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) => (  
  • {props.title}
  • )
    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) => (  
  • {props.title}
  • )
    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 Отказ