首页 > 其他分享 >React 简单登录平台Demo(1):Next.js配置

React 简单登录平台Demo(1):Next.js配置

时间:2024-04-19 14:00:16浏览次数:25  
标签:npm react Demo app js React tsx next Next

目录

前言

我之前的那个项目写到后面,发现还不如直接用Next.js呢,开箱即用。直接用官方的默认配置好了。

Next中文文档

体验Next.js

创建 Next.js 应用程序

中文文档路径问题

由于中文文档太久没更新了,直接到快速开始好了

创建项目

npx create-next-app@latest
PS D:\workSpace\react\SimpleLoginDemo> npx create-next-app@latest
Need to install the following packages:
# 确定create-next-app的版本
[email protected]
Ok to proceed? (y) y
# 项目名称
√ What is your project named? ... my-next-test
# 启用代码检查,后面一路Yes即可
√ 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
Creating a new Next.js app in D:\workSpace\react\SimpleLoginDemo\my-next-test.

Using npm.

Initializing project with template: app-tw 


Installing dependencies:
- react
- react-dom
- next

Installing devDependencies:
- postcss
- tailwindcss
- eslint
- eslint-config-next


added 353 packages in 41s

133 packages are looking for funding
  run `npm fund` for details
Success! Created my-next-test at D:\workSpace\react\SimpleLoginDemo\my-next-test

启动项目

npm run dev

启动报错

npm install next@canary

测试TailWindCSS 热重载

在page.tsx中添加hello world

<h1 className="text-3xl font-bold underline rounded-md border-4  border-sky-500">Hello world!</h1>

如何添加路由

后面经过我的多次对比后发现,NEXT.JS的中文文档已经全面落后,后面得根据官方英文文档来写代码了

React官方英文文档

现在React内置了一个App Router,必须得按照他的逻辑写。

  • src/app
    • page.tsx-->/
    • about
      • page.tsx -->/about

第三方库引入

  • antd:UI组件
  • react-icons:Icon组件
  • @iconify/json @iconify/tailwind:Icon组件
  • echarts-for-react/echarts:图表组件
  • daisyui:tailwindcss UI框架
npm install antd
npm install react-icons --save
npm i @iconify/json @iconify/tailwind -D
npm i -D daisyui@latest
npm install --save echarts-for-react
npm install --save echarts

tailwindcss配置

因为我们引入了两个tailwindcss的插件,所以需要在tailwind.config.css里面进行对应的配置

import type { Config } from "tailwindcss";
const { addDynamicIconSelectors } = require('@iconify/tailwind')
const config: Config = {
  content: [
    "./src/components/**/*.{js,ts,jsx,tsx,mdx}",
    "./src/app/**/*.{js,ts,jsx,tsx,mdx}",
    "./src/app/*.{js,ts,jsx,tsx,mdx}",
  ],
  theme: {
    extend: {
      backgroundImage: {
        "gradient-radial": "radial-gradient(var(--tw-gradient-stops))",
        "gradient-conic":
          "conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))",
      },
    },
  },
  plugins: [addDynamicIconSelectors(),require("daisyui")],
};
export default config;

相关链接

Ant Design 中文文档

作为 Tailwind CSS 的插件来安装 daisyUI

React Icons 官方文档

yesicon 中文Icon网

echarts-for-react的使用

布局

既然用了App-Router,那就全部按照NEXT全套上好了

新建布局

Next.js里面,布局不会被反复重写渲染。

比如

  • src/app
    • about
      • page.tsx//这个被layout影响
      • layout.tsx//about文件夹下面所有的page都会被布局影响

布局也是嵌套影响的

  • src/app
    • layout.tsx//标记为layout1
    • about
      • page.tsx//这个被两个layout影响。layout1-->layout2-->page.tsx
      • layout.tsx//标记为layout2,

根节点layout配置

根节点layout必须包含html+body元素

路由跳转

Link跳转

直接用个Link指定跳转的位置就行了

import Link from 'next/link'

export default function Page() {
return Dashboard
}

Hook跳转

因为next.js分为服务端渲染和客户端渲染,而后端我直接写就可以了,所以我们所有的页面都直接用'use client'去声明这个页面是客户端页面

//必须使用use client才能使用hook
'use client'
 
import { useRouter } from 'next/navigation'
 
export default function Page() {
  const router = useRouter()
 
  return (
    <button type="button" onClick={() => router.push('/dashboard')}>
      Dashboard
    </button>
  )
}

简单的登录页面

我们之前只是简单的了解一下NEXT.JS而已,深入的内容我们先跳过,我们先写个简单的静态页面即可。写了两天的tailwindcss,发现写起来是非常的麻烦。想想算了,先用anti凑合用用好了

标签:npm,react,Demo,app,js,React,tsx,next,Next
From: https://www.cnblogs.com/gclove2000/p/18140873

相关文章

  • 三角不等式/react ts 速查表
    三角不等式一般来说软件工程观察到了反三角不等式:要从A到C,通过先从A到B,然后从B到C比直接从A到C更快。如果你提一个拉请求,有帮助的是将它分成更小的部分。如果你重构某些东西,先引入一个新的工作拷贝然后分别淘汰旧代码,比原地更改这个东西要快。reactts速查表htt......
  • HarmonyOS NEXT应用开发之多层嵌套类对象监听
    介绍本示例介绍使用@Observed装饰器和@ObjectLink装饰器来实现多层嵌套类对象属性变化的监听。效果图预览使用说明加载完成后显示商品列表,点击刷新按钮可以刷新商品图片和价格。实现思路创建FistGoodsModel类,类对象是用@Observed修饰的类SecondGoodsItemList,SecondGoods......
  • 如何在 Netlify 上手动部署 React 和 TypeScript 项目
    在本教程中,我将教你如何使用Vite在Netlify上手动部署React和TypeScript项目。我将向你展示一些快速简单的步骤,让你的项目能够立即运行。要跟着本教程操作,有几个先决条件:一个现有的React和TypeScript项目,使用Vite构建,并且你想要部署它。VisualStudioCode(VSCode......
  • REACT小练习
    react组件间props传递functionDetail({content,active}){return(<div><p>{content}</p><p>{active?'已激活':'未激活'}</p></div>)}functionArticle({title,de......
  • 如何实现数据库数据到Abp vnext实体对象的同步?以及代码生成工具
    在采用了EFCore的CodeFirst方式下,如果你在数据库中直接添加了新表或存储过程,你需要在项目代码中手动反向工程这些数据库的更改,以保持CodeFirst的代码与数据库同步。这种情况可以通过如下两个步骤来实现:从现有数据库创建模型:使用EntityFrameworkCore的Scaffold-DbContext......
  • 1 React介绍
    一React介绍1、React是渲染用户界面(UI)的JavaScript库2、React完全基于JavaScript用JavaScript可以生成结构、使用样式及控制逻辑3、学习路径JSX-》组件-》Hooks-》状态管理-》路由二开发环境搭建1、创建项目npxcreate-react-appreact-basicReact脚手架......
  • React初次使用
    大概过了一下JS,今天再试试React一、React核心语法1、脚手架创建一个项目npxcreate-react-appdemo2、插值functionApp(){constdivContent='标签内容'constdivTitle='标签标题'return(<divclassName="App"><headerclassName="A......
  • HarmonyOS NEXT应用开发之使用AKI轻松实现跨语言调用
    介绍针对JS与C/C++跨语言访问场景,NAPI使用比较繁琐。而AKI提供了极简语法糖使用方式,一行代码完成JS与C/C++的无障碍跨语言互调,使用方便。本示例将介绍使用AKI编写C++跨线程调用JS函数场景。通过调用C++全局函数,创建子线程来调用JS函数,实现对变量value的加10操作,为开发者使用AKI提......
  • react-native-camera 安装
    npmi react-native-camera--save或yarnadd react-native-camera 在android/app/build.gradle中添加:missingDimensionStrategy'react-native-camera','general'implementationproject(path:':react-native-camera') 在MainApplicatio......
  • react 的拖动面板SplitPane的使用
    1、我刚开始,是准备使用npminstallreact-split-pane来引入的。但是引入的过程报错了npmERR!codeERESOLVEnpmERR!ERESOLVEunabletoresolvedependencytreenpmERR!npmERR!Whileresolving:[email protected]!Found:[email protected]!n......