Nextjs实战

2023-12-07 16:12
文章标签 实战 nextjs

本文主要是介绍Nextjs实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、安装

Next.js 是一个全栈式的 React 框架。它用途广泛,可以让你创建任意规模的 React 应用——可以是静态博客,也可以是复杂的动态应用。要创建一个新的 Next.js 项目,请在你的终端运行:

npx create-next-app@latest

如果你是 Next.js 的新手,请查看 Next.js 教程。

Next.js 由 Vercel 维护。你可以 将 Next.js 应用 部署到 Node.js 或 serverless 上,也可以部署到你自己的服务器上。完全静态的 Next.js 应用 可以部署在任何支持静态服务的地方。

1. 安装步骤

Node版本要求在18.17以上,建议使用nvm切换 

打开终端(官网建议使用create-next-app创建Next应用)

npx create-next-app@latest

接下来将看到如下提示:根据自己的习惯进行选择,这里我全选Yes,最后回车 

 What is your project named? my-next-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? @/

 注意:选择使用项目根目录中的src目录将应用程序代码与配置文件分开。这和我选择的方式是一致的

 2. 项目结构

二、集成第三方登录

Dashboard | Clerk.com 官网

1,添加应用程序

2、选择登录方式

 Add authentication and user management to your Next.js app with Clerk in 7 minutes | Clerk

3、如何将Clerk身份添加到nextjs中 

https://clerk.com/docs/quickstarts/nextjs  文档

 (1)、安装
npm install @clerk/nextjs
(2)、设置环境键(这里看你的文档他是有自动生成的键)
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=​pk_test_c2FjcmVkLWd1cHB5LTE4LmNsZXJrLmFjY291bnRzLmRldiQ​
CLERK_SECRET_KEY=​sk_test_••••••••••••••••••••••••••••••••••​

在根目录创建.env.local文件把上面copy到文件中

 (3)、路由选择 

我们这里选择app router这个是比较常用的

 修改/src/app/layout.tsx

import { ClerkProvider } from '@clerk/nextjs'export default function RootLayout({children,
}: {children: React.ReactNode
}) {return (<ClerkProvider><html lang="en"><body>{children}</body></html></ClerkProvider>)
}
(4)、在src/下创建中间件

src/创建middleware.ts

import { authMiddleware } from "@clerk/nextjs";// This example protects all routes including api/trpc routes
// Please edit this to allow other routes to be public as needed.
// See https://clerk.com/docs/references/nextjs/auth-middleware for more information about configuring your Middleware
export default authMiddleware({});export const config = {matcher: ['/((?!.+\\.[\\w]+$|_next).*)', '/', '/(api|trpc)(.*)'],
};

(5)、嵌入<UserButton />

在app/page.tsx文件加入<UserButton />

import { UserButton } from "@clerk/nextjs";export default function Home() {return (<div><UserButton afterSignOutUrl="/"/></div>)
}

 启动项目(到这里就完成了!)

npm run dev

登录成功这个显示的就是你刚刚的加的那个<UserButton />来控制你登陆的状态

三、路由介绍

待更新!!

这篇关于Nextjs实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/466498

相关文章

React+TS前台项目实战(十七)-- 全局常用组件Dropdown封装

文章目录 前言Dropdown组件1. 功能分析2. 代码+详细注释3. 使用方式4. 效果展示 总结 前言 今天这篇主要讲全局Dropdown组件封装,可根据UI设计师要求自定义修改。 Dropdown组件 1. 功能分析 (1)通过position属性,可以控制下拉选项的位置 (2)通过传入width属性, 可以自定义下拉选项的宽度 (3)通过传入classN

PyTorch模型_trace实战:深入理解与应用

pytorch使用trace模型 1、使用trace生成torchscript模型2、使用trace的模型预测 1、使用trace生成torchscript模型 def save_trace(model, input, save_path):traced_script_model = torch.jit.trace(model, input)<

MyBatis-Plus常用注解详解与实战应用

MyBatis-Plus 是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。它提供了大量的常用注解,使得开发者能够更方便地进行数据库操作。 MyBatis-Plus 提供的注解可以帮我们解决一些数据库与实体之间相互映射的问题。 @TableName @TableName 用来指定表名 在使用 MyBatis-Plus 实现基本的 C

[大师C语言(第三十六篇)]C语言信号处理:深入解析与实战

引言 在计算机科学中,信号是一种软件中断,它允许进程之间或进程与内核之间进行通信。信号处理是操作系统中的一个重要概念,它允许程序对各种事件做出响应,例如用户中断、硬件异常和系统调用。C语言作为一门接近硬件的编程语言,提供了强大的信号处理能力。本文将深入探讨C语言信号处理的技术和方法,帮助读者掌握C语言处理信号的高级技巧。 第一部分:C语言信号处理基础 1.1 信号的概念 在Unix-lik

MATLAB算法实战应用案例精讲-【数模应用】三因素方差

目录 算法原理 SPSSAU 三因素方差案例 1、背景 2、理论 3、操作 4、SPSSAU输出结果 5、文字分析 6、剖析 疑难解惑 均方平方和类型? 事后多重比较的类型选择说明? 事后多重比较与‘单独进行事后多重比较’结果不一致? 简单效应是指什么? 边际估计均值EMMEANS是什么? 简单简单效应? 关于方差分析时的效应量? SPSSAU-案例 一、案例

[最全]设计模式实战(一)UML六大原则

UML类图 UML类图是学习设计模式的基础,学习设计模式,主要关注六种关系。即:继承、实现、组合、聚合、依赖和关联。 UML类图基本用法 继承关系用空心三角形+实线来表示。实现接口用空心三角形+虚线来表示。eg:大雁是最能飞的,它实现了飞翔接口。 关联关系用实线箭头来表示。当一个类"知道"另一个类时,可以用关联。eg:企鹅需要"知道"气候的变化,需要"了解"气候规律。 聚合关

B站大模型指令微调入门实战(完整代码),一键打造你的数字分身

前两天,想导出微信聊天记录,于是搞了个小工具。 感兴趣的小伙伴,可以回看: 微信聊天记录导出为电脑文件实操教程(附代码) 一键获取所有微信聊天记录(附PyQT6入门实战) 拿到这些数据都有什么用? 突发奇想:如果把微信上,所有和我相关的聊天对话提取出来,再结合大语言模型 LLM,是不是就可以打造我的数字分身了? 选择一个基座大模型,通过指令微调的方式,打造个性化AI Bot,不失为

AI 大模型企业应用实战(11)-langchain 的Document Loader机制

loader机制让大模型具备实时学习的能力: 0 Loader机制 案例环境准备: import osos.environ["OPENAI_API_KEY"] = "sk-javaedge"os.environ["OPENAI_PROXY"] = "https://api.chatanywhere.tech"import osfrom dotenv import load_doten

WHAT - NextJS 系列之 Rendering - Server Rendering Strategies

目录 1. Static Rendering(静态渲染)特点:实现方式: 2. Dynamic Rendering(动态渲染)特点:实现方式: 3. Streaming Rendering(流式渲染)特点:实现方式: 总结 相关官方文档:https://nextjs.org/docs/app/building-your-application/rendering/server-co

移动Web开发实战内容要点!!!

移动web开发 目录 移动web开发 第一章、Web开发标准与网页网站制作介绍 1.1Web开发标准 1.2网页基本构成元素 第二章、Web开发技术基础 2.1HTML的主要特点: 2.2HTML基本知识 2.3CSS样式 2.4JavaScript 第三章、打造移动Web应用程序 3.1为什么Android会成为主流操作系统 3.2测试应用程序 第四章、HTML5在移