Next.js 学习笔记(一)——安装

安装

系统要求:

  • Node.js 18.17 或更高版本
  • 支持 macOS、Windows(包括 WSL)和 Linux

自动安装

我们建议使用 create-next-app 启动一个新的 Next.js 应用程序,该应用程序会自动为你设置所有内容。要创建项目,请运行:

npx create-next-app@latest

安装时,你将看到以下提示:

What is your project named? my-app
Would you like to use TypeScript? No / Yes
Would you like to use ESLint? No / Yes
Would you like to use Tailwind CSS? No / Yes
Would you like to use `src/` directory? No / Yes
Would you like to use App Router? (recommended) No / Yes
Would you like to customize the default import alias (@/*)? No / Yes
What import alias would you like configured? @/*

提示后,create-next-app 将使用你的项目名称创建一个文件夹,并安装所需的依赖项。

需要知道:

  • Next.js 现在默认提供 TypeScript、ESLint 和 Tailwind CSS 配置。

  • 你可以选择使用项目根目录中的 src 目录将应用程序的代码与配置文件分离。

手动安装

要手动创建新的 Next.js 应用程序,请安装所需的软件包:

npm install next@latest react@latest react-dom@latest

打开你的 package.json 文件并添加以下 scripts

// package.json{"scripts": {"dev": "next dev","build": "next build","start": "next start","lint": "next lint"}
}

这些脚本指的是开发应用程序的不同阶段:

  • dev:运行 next dev 以在开发模式下启动 Next.js
  • build:运行 next build 来构建应用程序以供生产使用
  • start:运行 next start 来启动 Next.js 生产服务器
  • lint:运行 next lint 来设置 Next.js 的内置 ESLint 配置

正在创建目录

Next.js 使用文件系统路由,这意味着应用程序中的路由由文件的结构决定。

app 目录

对于新应用程序,我们建议使用 App Router。该路由器允许你使用 React 的最新功能,是基于社区反馈的 Pages Router 的演变。

创建一个 app/ 文件夹,然后添加 layout.tsxpage.tsx 文件。这些将在用户访问应用程序的根目录(/)时渲染。

在这里插入图片描述

使用所需的 <html><body> 标签在 app/layout.tsx 内创建根 layout:

// app/layout.tsxexport default function RootLayout({children,
}: {children: React.ReactNode
}) {return (<html lang="en"><body>{children}</body></html>)
}

最后,创建一个主页 app/page.tsx,其中包含一些初始内容:

// app/page.tsxexport default function Page() {return <h1>Hello, Next.js!</h1>
}

需要知道:如果你忘记创建 layout.tsx,Next.js 将在与 next dev 一起运行开发服务器时自动创建这个文件。

了解有关使用 App Router 的更多信息。

pages 目录(可选)

如果你更喜欢使用 Pages Router 而不是 App Router,你可以在项目的根目录中创建页/pages 目录。

然后,在 pages 文件夹中添加一个 index.tsx 文件。这将是你的主页(/):

// pages/index.tsxexport default function Page() {return <h1>Hello, Next.js!</h1>
}

接下来,在 pages/ 中添加 _app.tsx 文件以定义全局 layout。了解有关自定义 App 文件的更多信息。

// pages/_app.tsximport type { AppProps } from 'next/app'export default function App({ Component, pageProps }: AppProps) {return <Component {...pageProps} />
}

最后,在 pages/ 中添加一个 _document.tsx 文件,以控制来自服务器的初始响应。了解有关自定义 Document 文件的详细信息。

// pages/_document.tsximport { Html, Head, Main, NextScript } from 'next/document'export default function Document() {return (<Html><Head /><body><Main /><NextScript /></body></Html>)
}

了解有关使用 Pages Router 的更多信息。

需要知道:虽然你可以在同一个项目中使用多个路由器,但 app 中的路由将优先于 pages。我们建议你在新项目中只使用一个路由器,以避免混淆。

public 文件夹(可选)

创建一个 public 文件夹来存储静态资产,例如:图像、字体等。然后,public 目录中的文件可以由代码从基本 URL(/)开始引用。

运行开发服务器

  • 运行 npm run dev 以启动开发服务器
  • 参观 http://localhost:3000 以查看您的应用程序
  • 编辑 app/page.tsx(或 pages/index.tsx)文件并保存它,以便在浏览器中查看更新的结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/227735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3. 内容模块管理 - 异常处理与校验

文章目录 内容模块管理一、自定义异常1.1 全局异常处理器1.2 自定义异常1.3 异常统一响应类1.4 封装通用异常信息 二、JSR303校验2.1 Maven坐标2.2 校验规则2.3 代码示例2.4 捕捉校验异常2.5 分组校验2.6 备注 三、全局异常处理23.1 全局异常处理器3.2 结果集3.3 常用注解3.3.1…

【漏洞复现】捷诚管理信息系统 SQL注入漏洞

漏洞描述 捷诚管理信息系统是一款功能全面,可以支持自营、联营到外柜租赁的管理,其自身带工作流管理工具,能够帮助企业有效的开展内部审批工作。 该系统CWSFinanceCommon.asmx接口存在SQL注入漏洞。未经身份认证的攻击者可以通过该漏洞获取数据库敏感信息,深入利用可获取…

Redis设计与实现之整数集合

目录 一、内存映射数据结构 二、整数集合 1、整数集合的应用 2、数据结构和主要操作 3、intset运行实例 创建新intset 添加新元素到 intset 添加新元素到 intset&#xff08;不需要升级&#xff09; 添加新元素到 intset (需要升级) 4、升级 升级实例 5、关于升级 …

GZ015 机器人系统集成应用技术样题4-学生赛

2023年全国职业院校技能大赛 高职组“机器人系统集成应用技术”赛项 竞赛任务书&#xff08;学生赛&#xff09; 样题4 选手须知&#xff1a; 本任务书共 25页&#xff0c;如出现任务书缺页、字迹不清等问题&#xff0c;请及时向裁判示意&#xff0c;并进行任务书的更换。参赛队…

Flutter在Android Studio上创建项目与构建模式

一、安装插件 1、前提条件&#xff0c;安装配置好Android Studio环境 2、安装Flutter和Dart插件 Linux或者Windows平台&#xff1a; 1&#xff09;、打开File > Settings。 2&#xff09;、在左侧列表中&#xff0c;选择"Plugins"右侧上方面板选中 "Market…

vue-element-admin如何把mock换成使用真实后台接口

1&#xff09;修改vue.config.js文件 use strict const path require(path) const defaultSettings require(./src/settings.js)function resolve(dir) {return path.join(__dirname, dir) }const name defaultSettings.title || vue Element Admin // page title// If you…

Vue3-16-【v-model】 表单数据绑定

作用描述 v-model 指令&#xff0c;实现了 表单输入组件的值 与 js 中的变量的值的绑定关系。 当我们在页面上执行输入动作时&#xff0c;js中变量的值也会同步发生变化。表单不仅仅局限于输入框&#xff0c;其他的如 &#xff1a; 单选按钮&#xff0c;复选框&#xff0c;下拉…

数据结构面试题和题目解析

以下是一些数据结构的面试题和解析&#xff1a; 1. 什么是链表&#xff1f; 链表是一种线性数据结构&#xff0c;由一系列节点组成&#xff0c;每个节点包含数据部分和指向下一个节点的指针。链表的主要优点是插入和删除操作比较方便&#xff0c;但访问链表中的元素不如访问数组…

【INTEL(ALTERA)】 quartus SignalTap 逻辑分析器 – Nios® II 插件 无法检测 Nios® II/f 处理器内核

说明 使用 Nios II 插件将 Nios II/f 处理器内核节点添加到 SignalTap 逻辑分析器时&#xff0c;在 英特尔 Quartus Prime Pro Edition 软件 23.3 版中可能会出现此问题。 错误消息&#xff1a; 无法完成“添加带插件的节点”命令&#xff0c;因为在当前设计中找不到所选 IP。…

IDEA之设置项目包的结构层级为eclipse默认样式

idea默认项目包的结构层级如下: 想修改成eclipse默认的那种样式&#xff0c;设置步骤如下: 1.点击下图中红框图标进行设置 2.选择 Tree Appearance&#xff0c;取消勾选 Compact Middle Packages 3.勾选红框里的两个选项&#xff0c;Flatten Packages 和 Hide Empty Middle Pa…

DL Homework 11

由于好多同学问我要代码&#xff0c;但这两天光顾着考四六级了&#xff0c;所以只能今天熬夜先给赶出来&#xff0c;第一题先搁置&#xff0c;晚点补上&#xff0c;先写第二题 习题6-4 推导LSTM网络中参数的梯度&#xff0c; 并分析其避免梯度消失的效果 习题6-3P 编程实现…

KMP算法, 什么是KMP算法 ,暴力匹配 ,KMP算法实现

文章目录 KMP算法什么是KMP算法暴力匹配KMP算法实现 KMP算法 什么是KMP算法 KMP是Knuth、Morris和Pratt首字母的缩写&#xff0c;KMP也是由这三位学者发明&#xff08;1977年联合发表论文&#xff09;。 KMP主要应用在字符串的匹配&#xff0c;是一个解决模式串在文本串是否…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《耦合碳-绿证-消纳量市场的日前电量市场交易交互式优化》

这个标题描述了一种优化模型或算法&#xff0c;用于在日前电量市场中耦合碳排放权市场、可再生能源绿色证书市场和消纳量市场进行交易的交互式优化。我将解析标题的关键词和概念&#xff1a; 日前电量市场&#xff1a;指的是电力市场中进行短期调度和交易的市场&#xff0c;其…

Idea maven打包时 报错 illegalArgumentException: Malformed \uxxxx encoding 解决方法

1 改变打包命令重新打包 在maven打包命令上加入 -e -X 2 找到报错类和方法 可以看到是 java.util.Properties#loadConvert类方法中有个throw new IllegalArgumentException( "Malformed \\uxxxx encoding.")&#xff0c;在此打断点 3 以Debug方式重新运行maven…

SLAM算法与工程实践——相机篇:传统相机使用(1)

SLAM算法与工程实践系列文章 下面是SLAM算法与工程实践系列文章的总链接&#xff0c;本人发表这个系列的文章链接均收录于此 SLAM算法与工程实践系列文章链接 下面是专栏地址&#xff1a; SLAM算法与工程实践系列专栏 文章目录 SLAM算法与工程实践系列文章SLAM算法与工程实践…

死锁的预防、避免、检测和消除

一、预防死锁 1. 破坏互斥条件 2. 破坏不剥夺条件 3.破坏请求和保持条件 4.破坏循环等待条件 二、避免死锁 避免死锁的一种方法是使用银行家算法&#xff0c;它涉及到安全序列的概念。银行家算法是一种资源分配和死锁避免的算法&#xff0c;它确保系统能够分配资源而不会导致死…

STM32迪文屏图标控件保姆级教程

要主图的去末尾&#xff0c;末尾福利图在等着你~~~ 文章目录 前言 开发环境 二、使用步骤 1.添加图标控件 2.设置图标属性 3.图标库ICL文件生成 4.单片机程序编写 容易踩得坑 一、前言 本篇文章主要介绍了在DGBUS平台上使用图标变量的步骤。首先需要在DGBUS中添加一个图标变量控…

linux(centos7)mysql8.0主从集群搭建(两台机器)

docker安装:&#xff08;转载&#xff09;centos7安装Docker详细步骤&#xff08;无坑版教程&#xff09;-CSDN博客 环境信息 主数据库服务器&#xff1a;192.168.1.10 从数据库服务器&#xff1a;192.168.1.11 1. mysql8.0镜像下载 docker pull mysql:8.0.23 2.创建docke…

瑞萨单片机学习:RA4M3单片机 BOOTloader升级 跳转到主程序 主程序无法执行问题

背景&#xff1a; 使用瑞萨的RA4M3单片机编写BOOT引导程序进行测试&#xff0c;在BOOT程序跳转到主程序时&#xff0c;主程序无法执行。本文介绍了问题的定位和解决方法。 运行开发环境介绍 硬件环境 RA4M3 官方开发板 J-LINK V11 开发板自带 软件开发环境 e2 studio VSCODE…

oracle怎么导入dmp文件??????

目录 oracle怎么导入dmp文件&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f; 先看&#xff1a; 方法一&#xff1a;【推荐】 winR输入 输入&#xff1a; 检验&#xff1a; 导入成功&#xff01; 方法二&#xff1a; 直接在 PLSQL Developer…