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

Next.js基础语法

Next.js 目录结构

image.png

入口App组件(_app.tsx)

_app.tsx是项目的入口组件,主要作用:

  • 可以扩展自定义的布局(Layout)
  • 引入全局的样式文件
  • 引入Redux状态管理
  • 引入主题组件等等
  • 全局监听客户端路由的切换

ts.config.json 的配置

Next.js默认是没有配置路径别名的,我们可以在ts.config.json中配置模块导入的别名:

  • baseUrl :配置允许直接从项目的根目录导入,比如: import Button from ‘components/button’
  • paths:允许配置模块别,比如: import Button from '@/components/button’

image.png

Next.js配置(next.config)

next.config.ts 配置文件位于项目根目录,可对Next.js进行自定义配置,比如,可以进行如下配置:

  • reactStrictMode: 是否启用严格模式,辅助开发,避免常见错误,例如:可以检查过期API来逐步升级
  • env:配置环境变量,配置完需要重启
    • ✓ 会添加到 process.env.xx 中
    • ✓ 配置的优先级: next.config.js中的env > .env.local > .env
  • basePath:要在域名的子路径下部署 Next.js 应用程序,您可以使用basePath配置选项。
    • ✓ basePath:允许为应用程序设置URl路径前缀。
    • ✓ 例如 basePath=/music, 即用 /music 访问首页,而不是默认
  • images:可以配置图片URL的白名单等信息
  • swcMinify: 用 Speedy Web Compiler 编译和压缩技术,而不是 Babel + Terser 技术

更多的配置: https://nextjs.org/docs/api-reference/next.config.js/introduction

内置组件

image.png

Image组件

image.png

全局和局部样式

image.png

静态资源引用

image.png

字体图标

字体图标使用步骤 :

  • 1.将字体图标存放在 assets 目录下
  • 2.字体文件可以使用相对路径和绝对路径引用。
  • 3.在_app.tsx文件中导入全局样式
  • 4.在页面中就可以使用字体图标了

image.png 新建页面

image.png

路由

app.tsx检查路由的跳转:

useEffect(() => {const handleRouteChange = (url: string) => {console.log(`App is changing to ${url}`);};// 监听路由的前进和后退// router.beforePopState(function (e) {//   console.log("beforePopState");//   console.log(e);//   return true;// });router.events.on("routeChangeStart", handleRouteChange);return () => {router.events.off("routeChangeStart", handleRouteChange);};
}, []);

组件导航(Link)

image.png

编程导航 (useRouter)

image.png

动态路由

image.png

路由参数(useRouter)

image.png

404 Page

image.png

路由匹配规则

◼ 路由匹配优先级, 即预定义路由优先于动态路由,动态路由优先于捕获所有路由。请看以下示例:

  • 1.预定义路由:pages/post/create.js
    • ✓ 将匹配 /post/create
  • 2.动态路由 :pages/post/[pid].js
    • ✓ 将匹配/post/1, /post/abc 等。
    • ✓ 但不匹配 /post/create 、 /post/1/1 等
  • 3.捕获所有路由:pages/post/[…slug].js
    • ✓ 将匹配 /post/1/2, /post/a/b/c 等。
    • ✓ 但不匹配/post/create, /post/abc、/post/1、、/post/ 等

来自资源:imooc

http://www.lryc.cn/news/146344.html

相关文章:

  • selenium进阶之web自动化项目框架搭建(Python版)
  • qt设计界面
  • 《C和指针》笔记12: 存储类型(自动变量、静态变量和寄存器变量)
  • 无限计算力:探索云计算的无限可能性
  • 【赋权算法】Python实现熵权法
  • docker之 Consul(注册与发现)
  • 用NeRFMeshing精确提取NeRF网络中的3D网格
  • 权限提升-Windows本地提权-AT+SC+PS命令-进程迁移-令牌窃取-getsystem+UAC
  • 深入了解Kubernetes(k8s):安装、使用和Java部署指南(持续更新中)
  • Oracle的学习心得和知识总结(二十九)|Oracle数据库数据库回放功能之论文三翻译及学习
  • 新版100句学完7000雅思单词
  • MATLAB图论合集(三)Dijkstra算法计算最短路径
  • MySQL 8.0.xx 版本解决group by分组的问题
  • 设计模式—原型模式(Prototype)
  • 【pytorch】Unfold和Fold的互逆操作
  • 【AI】《动手学-深度学习-PyTorch版》笔记(二十一):目标检测
  • 畅捷通T+用户中locked勒索病毒后该怎么办?勒索病毒解密数据恢复
  • 神仙般的css动画参考网址,使用animate.css
  • 江西抚州新能源汽车3d扫描零部件逆向抄数测量改装-CASAIM中科广电
  • 数据结构学习 --4 串
  • 探索Kotlin K2编译器和Java编译器的功能和能力
  • 如何安装chromadb
  • vue实现把字符串中的所有@内容,替换成带标签的
  • 「MySQL-00」MySQL在Linux上的安装、登录与删除
  • 8月29-31日上课内容 第五章
  • 数据库导出工具
  • ChatGPT 制作可视化柱形图突出显示第1名与最后1名
  • 前端学习记录~2023.8.10~JavaScript重难点实例精讲~第6章 Ajax
  • 2023年Java核心技术第九篇(篇篇万字精讲)
  • C#上位机中的单例应用思考