Учебный курс по Next.js 13.5 – Освой новый Next.js за 54 минуты!

Posted by


Добро пожаловать в полный курс по Next.js 13.5! В этом уроке мы изучим новую и улучшенную версию Next.js за 54 минуты. Next.js – это популярный фреймворк для создания реактивных веб-приложений на основе React. Его простота в использовании и мощные функциональности делают его отличным выбором для разработки как небольших, так и крупных проектов.

Начнем с установки Next.js. Для этого вам понадобится Node.js и npm. Установите их, если у вас их еще нет. Затем откройте ваш терминал и введите следующую команду:

npx create-next-app@13.5 my-next-app

Эта команда создаст новое приложение Next.js с именем my-next-app. Перейдите в созданную директорию, используя команду cd my-next-app, и запустите разработческий сервер с помощью команды:

npm run dev

Теперь ваше приложение запущено и доступно на http://localhost:3000. Вы можете открыть его в браузере и увидеть приветственную страницу Next.js.

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

Теперь создадим несколько страниц для нашего приложения. В папке pages Next.js использует файловую систему для определения маршрутов. Создайте файл about.js в папке pages и добавьте следующий код:

import React from 'react';

const About = () => {
  return (
    <div>
      <h1>About Page</h1>
      <p>This is the about page of our Next.js app.</p>
    </div>
  );
};

export default About;

Теперь, если вы перейдете на http://localhost:3000/about, вы увидите страницу About, которую только что создали.

Следующим шагом будет работа с динамическим маршрутизатором Next.js. Создайте новый файл pages/post/[id].js и добавьте следующий код:

import React from 'react';
import { useRouter } from 'next/router';

const Post = () => {
  const router = useRouter();
  const { id } = router.query;

  return (
    <div>
      <h1>Post {id}</h1>
      <p>This is the post page with id: {id}.</p>
    </div>
  );
};

export default Post;

Теперь, если вы перейдете на http://localhost:3000/post/1, вы увидите страницу Post с id равным 1. Вы можете также создавать динамические маршруты с использованием квадратных скобок в имени файла, как мы сделали здесь.

Наконец, давайте добавим стилей к нашему приложению. Next.js поддерживает CSS модули, Styled Components и другие способы стилизации. Создайте файл styles.module.css в папке styles и добавьте следующий код:

.container {
  max-width: 800px;
  margin: 0 auto;
}

.title {
  font-size: 2rem;
  color: #333;
}

Измените файл about.js, чтобы применить стили:

import React from 'react';
import styles from '../styles/styles.module.css';

const About = () => {
  return (
    <div className={styles.container}>
      <h1 className={styles.title}>About Page</h1>
      <p>This is the about page of our Next.js app.</p>
    </div>
  );
};

export default About;

Теперь у вас есть стилизованная страница About в вашем приложении Next.js.

Это лишь небольшая часть того, что вы можете сделать с Next.js. Изучите документацию, экспериментируйте и создавайте удивительные веб-приложения с помощью этого мощного фреймворка. Успехов в изучении Next.js и создании новых проектов!

0 0 votes
Article Rating
48 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@REDGroup
1 month ago

Лайки набрали, начинаем подготовку к видео, будет в след году
💎Бонусный урок + ДЗ + Исходник уже доступны по нашей общей подписке в разделе "Видео" на платформе – https://htmllessons.ru/premium

00:00 – Начало
02:33 – Основные изменения
03:25 – Инициализация Next приложения
07:35 – Новая структура APP
12:53 – Роутинг
15:12 – Как работают layout?
21:00 – loading, not-found
23:18 – SEO и Meta данные
27:17 – Клиентские vs серверные компоненты
35:22 – Как теперь получать данные SSG, SSR, ISR
40:26 – Подключение шрифтов
43:38 – Как теперь делать авторизацию?
50:39 – Turbopack
53:18 – Продолжение практики

@alex_davis17
1 month ago

получается теперь не надо использовать getStaticprops и другие функции?

@ВладиславТеслюк-х2у
1 month ago

Ждем курс по авторизации)

@TonyPony7
1 month ago

cразу лайк за патчи

@ИгорьМедведев-ы6у
1 month ago

Я в шоке, очень круто !

@Nickola_United
1 month ago

Крайне негативный опыт работы с этим говном. Next крашится от каждого чиха. А если ты месяца 2 не заходил на проект, то всё! Исправляй квадриллион багов, которых раньше не было. У меня есть теория, что создатели next'а-рукожопы и голова растёт не из того места, где природа задумала. Сама концепция этой технологии крайне бредовая. Нахрена запускать клиентский код на сервере? Разрабы говорят "чтобы снизить нагрузку на клиентов". Но бл. Вы можете назвать хотя бы 5 сайтов, которые не могут запуститься на смартфоне нормально? Даже фигма на смартфоне может более-менее работать. Что за код должен быть web-приложения, чтобы он не запустился на смартфоне хотя бы? Зато добавляет дофига головной боли разработчикам и бизнесу, т.к нужно арендовать больше серверов, чтобы обработать большой объём информции исходящий от клиентов. То есть по-мимо основной работы сервер должен заниматься отрисовкой страничек. Это дорого. Для разрабов нужно постоянно писать 'use client', чтобы работать например с redux toolkit'ом или local storage'ом.

@НикитаМальцев-н8в
1 month ago

Макс привет. Большое спасибо за видео! У меня такая проблема. не могу заставить работать кастомную страницу 404. Когда на компе запускаю – всё работает, а после загрузки на хостинг – отображается дефолтная страница. Что можно сделать?

@mramoer6272
1 month ago

Подскажите, кто проходил курс на официальном сайте Next.ks, у вас тоже tailwind стили не прогрузились на сайте? Проект скомпилировался, стили tailwind там указаны, все дела. Это из-за ранней беты, о которой Макс говорил или что?

@RuslanPopkov
1 month ago

Спасибо! ✌

@frk_91
1 month ago

Братец, 2k like уже собралось. Хде авторизация?? 😀😀

@tyortyo
1 month ago

Обычно мне тяжело смотреть обучающие ролики. У тебя хорошие пояснения, доходчивое объяснение теории с указанием на первоисточник. Буду дальше следить за твоим каналом. Спасибо!

@cubizm
1 month ago

2000 лайков набралось, ты снимешь видео про авторизацию?

@RewCSharp
1 month ago

Спасибо за урок!

@ruslangilyazov7733
1 month ago

Патчи это классно!

@minimalstory
1 month ago

печально что лайков мало.. не ценит народ качественный контент(

@vazgenaleksanyan2929
1 month ago

А на счет getStaticProps и getServerSideProps я правильно понимаю что в новой версии нет нужды использование, так как уже можно прям в серверном компоненте запросы делать. или что то не доганяю этот момент

@vazgenaleksanyan2929
1 month ago

Все супер спасибо. А на счет SSR, один пользователь один запрос к серверу, может оставим это к бекенду, как и всегда было, пусть кешируют что нужно.

@Integrations1Cv8
1 month ago

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

@yppi1252
1 month ago

Будет ролик про next 14?

@HolyMasster
1 month ago

бесплатно для тех кто купил подписку)
"вы можете жить в этой квартире бесплатно, пока платите деньги" =))))))