当前位置: 首页 > news >正文

前端(react)框架nextjs

文章目录

    • 一、什么是next.js
      • 1. 路由
      • 2. 打包 next build
      • 3. 部署
    • 二、 next.js 和react区别
    • 三、webstorm使用nextjs
    • 四、开发常用总结
      • 如何修nextjs 启动监听的端口号?
      • NGINX 反向代理 Next.js 项目配置
    • 参考

一、什么是next.js

官网: https://www.nextjs.cn/

next.js作为一款轻量级的应用框架,主要用于构建静态网站和后端渲染网站。

**Next.js是一个用于生产环境的React 应用框架(官方介绍:The React Framework for Production),使用它可以快速上手开发 React 应用( enables you to build superfast and extremely user-friendly static websites,),而不需要花很多时间和精力去折腾各种开发工具。**所谓的用于生产环境,是指功能和稳定性足够,有大量的实际应用案例。

NextJS是一个开源框架,它由 NodeJS 和 Babel 构建,专门用于与 React 一起使用。此外,它还是创建应用程序、服务器端渲染网站、linting 和标准化、SEO 工具、HTTP 缓存和自动代码拆分的绝佳平台。

1. 路由

next.js 没有路由配置文件,路由的规则跟 PHP 有点像。只要在 pages 文件夹下创建的文件,都会默认生成以文件名命名的路由。例如:pages/about.js

2. 打包 next build

next.js 生成的文件位置:

.next\server

next build生成用于生产的应用程序的优化版本。该标准输出包括:

3. 部署

通过三种不同的方式自行托管 Next.js:

  • Node.js 服务器
    确保你的 package.json 具有 “build” 和 “start” 脚本:
    然后,运行 npm run build 来构建你的应用。最后,运行 npm run start 启动 Node.js 服务器。该服务器支持所有 Next.js 功能。

  • 一个 Docker 容器

  • 静态导出

next build && next export

默认生成的静态页面在out文件夹里。也可以next.config.js中加上output: "export"设置,这样我们在运行next build命令后,Next会生成一个静态资源文件夹out

总结:Node.js 部署方式更加灵活,适用于需要服务器端渲染或动态内容的应用程序。而静态导出方式则更适合于纯静态内容的应用程序。具体选择哪种方式,需要根据应用程序的需求和特点来决定。

二、 next.js 和react区别

01-Next.js介绍
参考URL: https://www.bilibili.com/video/BV13M4y1t78b/

在这里插入图片描述react只是view层,你需要搞定很多其他东西,例如路由等东西。

next.js 已经引入了很多东西,是一个全栈框架:
在这里插入图片描述
next.js支持api路由,可以直接做服务端api。

三、webstorm使用nextjs

在这里插入图片描述

四、开发常用总结

如何修nextjs 启动监听的端口号?

官方文档:https://nextjs.org/docs/app/api-reference/next-cli#production

nextjs默认的服务端口是3000,如果修改端口号需要打开项目根目录下的文件package.json,在scripts中把dev后面的next加上端口号参数 -p。

  "scripts": {"dev": "next dev","build": "next build","start": "next start -p 3002","lint": "next lint"},

NGINX 反向代理 Next.js 项目配置

   # 代理 Next.js 应用请求location /nextjs/ {proxy_pass http://localhost:3002;  # 代理到 Next.js 应用proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;  # WebSocket支持proxy_set_header Connection 'upgrade';    # WebSocket支持proxy_set_header Host $host;              # 客户端请求的原始Hostproxy_set_header X-Real-IP $remote_addr; # 客户端IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 转发的IPproxy_set_header X-Forwarded-Proto $scheme; # 转发的协议}

如果访问静态文件报错,根据url 404报错日志,参考如下配置。

# 处理 Next.js 的静态文件请求
location /_next {alias /root/xxx/xxx/.next;
}

参考

我看Next.js:一个更现代的海王
参考URL: https://baijiahao.baidu.com/s?id=1715929965351295334
【NextJS】面向前端开发的全栈解决方案
参考URL: https://search.bilibili.com/all?vt=87123718
【推荐,next.js学习】01-Next.js介绍
参考URL: https://www.bilibili.com/video/BV13M4y1t78b/

相关文章:

前端(react)框架nextjs

文章目录 一、什么是next.js1. 路由2. 打包 next build3. 部署 二、 next.js 和react区别三、webstorm使用nextjs四、开发常用总结如何修nextjs 启动监听的端口号?NGINX 反向代理 Next.js 项目配置 参考 一、什么是next.js 官网: https://www.nextjs.cn…...

深耕编程语言18年,对话 Rust、TypeScript、Nushell 核心贡献者 Sophia Turner | Open AGI Forum

作者 | Annie Xu 采访 | 卢威 责编 | Echo Tang 出品丨GOSIM 开源创新汇 编程语言的种类令人眼花缭乱,但成功的、常用的编程语言却是凤毛麟角。在深耕编程语言研发 18 年的 Sophia June Turner 看来,编程语言成功的关键在于其研发团队的透明度和机制建…...

深度学习--图像分割UNet介绍及代码分析

UNet介绍 参考UNet网络介绍整体架构UNet过程输入编码器(下采样)中间特征表示解码器(上采样)输出 代码详解unetUP和Unet关系上采样模块——unetUp用于图像分割的卷积神经网络(CNN)架构模块——Unet类的定义初…...

接了一个2000块的小活,大家进来看看值不值,附源码

如题,上周的一天,朋友圈的一个旧友找到了我,说让我帮他开发一个小工具,虽然活不大,但没个几年的全栈经验还不一定能接下来,因为麻雀虽小,涉及的内容可不少: 需求分析 原型设计 详细…...

基于MindFormers实现GPT2模型的推理

前言 针对MindFormers的安装,可参考本专栏里的另一篇博客 安装MindFormers(昇腾910)-CSDN博客 pipeline方式 from mindformers import pipeline from mindformers import GPT2LMHeadModel, GPT2Config, GPT2Tokenizer tok GPT2Tokenizer…...

探索腾讯云AI代码助手:智能编程的新时代

智能编程的新时代 前言开发环境介绍腾讯云 AI 代码助手使用实例生成文档解释代码生成测试修复代码人工智能技术对话 智能编程获得的帮助与提升对腾讯云AI代码助手的建议结语 前言 hello,大家好我是恒川,今天我来给大家安利一款非常好用的AI 代码助手&…...

MySQL 之 MHA 高可用架构详解

这个是在内部分享做的一个 Keynote 动画,用来演示 MHA 高可用架构及发生故障时的 Failover。动画如下: 数据库相关分享之 MySQL 的 MHA 架构详解 引言 MySQL 数据库在企业和应用中扮演着举足轻重的角色,其稳定性和可靠性对于业务的连续运行至…...

WangEditor自定义新元素,并解决自定义元素中换行无法消除样式的问题

一、背景概述 项目有自定义样式模板的需求,WangEditor没有。若直接把样式的html插入WangEditor中,无法解析,且会被自动过滤。因此,需要基于WangEditor提供的API进行二次开发。 例如,需要新增以下样式: 该…...

VBA Excel口算题

口算题函数 利用随机数写个20以内加减法口算题函数 Function Kousuan()Dim intOne As IntegerDim intTwo As IntegerDim strFlg As StringDim intFlg As IntegerDim strRtn As StringintFlg Application.WorksheetFunction.RandBetween(0, 1)strFlg "-"If intFlg…...

C++理解临时对象的来源

当程序员之间进行交谈时&#xff0c;他们经常把仅仅需要一小段时间的变量称为临时变量。例如在下面这段swap(交换)例程里&#xff1a; template<class T> void swap(T& object1, T& object2) { T temp object1; object1 object2; object2 temp; } 通常把t…...

C++协助完成返回值优化

一个返回对象的函数很难有较高的效率&#xff0c;因为传值返回会导致调用对象内的构造和析构函数(参见条款M19)&#xff0c;这种调用是不能避免的。问题很简单&#xff1a;一个函数要么为了保证正确的行为而返回对象要么就不这么做。如果它返回了对象&#xff0c;就没有办法摆脱…...

2024年睿抗机器人开发者大赛(RAICOM)国赛题解

目录 RC-u1 大家一起查作弊 分数 15 RC-u2 谁进线下了&#xff1f;II 分数 20 RC-u3 势均力敌 分数 25 RC-u4 City 不 City 分数 30 RC-u5 贪心消消乐 分数 30 RC-u1 大家一起查作弊 分数 15 简单模拟题&#xff0c;对于多行读入使用while(getline(cin…...

声明式UI语法

一、ArkTS的基本组成 Entry // 装饰器 Component // 装饰器 struct Hello { // 自定义组件State myText: string World;build() { // UI描述Column() { // 系统组件Text(Hello ${this.myText}).fontSize(50)Divider()Button(Click me).onClick(() > { // 事件方法t…...

JDBC连接数和1521连接数之间的区别和联系(Java Database Connectivity)

JDBC&#xff08;Java Database Connectivity&#xff09;连接数和1521连接数之间的区别和联系如下&#xff1a; 区别 概念不同&#xff1a; JDBC连接数&#xff1a;指通过JDBC技术建立的数据库连接数。JDBC是Java中的一套API&#xff0c;用于连接和操作关系数据库。JDBC连接数…...

Leetcode - 136双周赛

目录 一&#xff0c;3238. 求出胜利玩家的数目 二&#xff0c;3239. 最少翻转次数使二进制矩阵回文 I 三&#xff0c;3240. 最少翻转次数使二进制矩阵回文 II 四&#xff0c;3241. 标记所有节点需要的时间 一&#xff0c;3238. 求出胜利玩家的数目 本题直接暴力求解&#x…...

SQLite ORDER BY 语句

SQLite ORDER BY 语句 SQLite 的 ORDER BY 语句用于对查询结果进行排序。排序可以是升序&#xff08;ASC&#xff09;或降序&#xff08;DESC&#xff09;。默认情况下&#xff0c;如果不指定排序方式&#xff0c;ORDER BY 会以升序对结果进行排序。 语法 SQLite ORDER BY 语…...

MTK Android12 系统中应用加载 .so 文件的问题分析

在本篇博客中,我将详细总结在 Android 12 系统上进行的几个实验,包括如何加载自定义 JAR 文件、如何解压和确认 .so 文件,以及如何验证系统报错提示。本文将介绍使用 PathClassLoader 和 DexClassLoader 动态加载类的实验,分析系统报错信息,并最终得出结论。 推荐:《Andr…...

bpmn简单使用(制作流程图)

1、先下载依赖&#xff0c;下面是我下载的版本 "bpmn-io/properties-panel": "^3.23.0", "bpmn-js": "^17.9.1", "bpmn-js-properties-panel": "^5.6.1", "camunda-bpmn-moddle": "^7.0.1",…...

【算法模板】算竞技巧:Python对拍数据生成

在计算机编程竞赛中&#xff0c;对拍&#xff08;Testlib&#xff09;是一种验证程序正确性的方法。它通常用于检查一个程序的输出是否与另一个程序的输出一致&#xff0c;以确保程序的正确性。 对拍程序 【算法模板】算竞技巧&#xff1a;对拍全解_算法竞赛对拍-CSDN博客 #i…...

计算机基本理论与程序运行原理概述

目录 计算机的基本表示方法 计算机的组成 程序运行的原理 指令执行的流水线 编译原理 个人理解 面试题总结 计算机的基本表示方法 计算机系统使用高、低电平来表示逻辑1和0。数据在计算机中的存储、传输和处理均以二进制形式进行。数据通过总线作为电信号进行传输&…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)

宇树机器人多姿态起立控制强化学习框架论文解析 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架&#xff08;一&#xff09; 论文解读&#xff1a;交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

C++中string流知识详解和示例

一、概览与类体系 C 提供三种基于内存字符串的流&#xff0c;定义在 <sstream> 中&#xff1a; std::istringstream&#xff1a;输入流&#xff0c;从已有字符串中读取并解析。std::ostringstream&#xff1a;输出流&#xff0c;向内部缓冲区写入内容&#xff0c;最终取…...

面向无人机海岸带生态系统监测的语义分割基准数据集

描述&#xff1a;海岸带生态系统的监测是维护生态平衡和可持续发展的重要任务。语义分割技术在遥感影像中的应用为海岸带生态系统的精准监测提供了有效手段。然而&#xff0c;目前该领域仍面临一个挑战&#xff0c;即缺乏公开的专门面向海岸带生态系统的语义分割基准数据集。受…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...