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

wordpress免费教程如何优化seo

wordpress免费教程,如何优化seo,个人博客网站怎么赚钱,南昌教育网站建设前言 最近几天用 next.js 开发了一个小项目,之前的项目基于 next.js 时,我都是使用的 jsx 的方式进行开发。而这次给客户升级,我升级为了 tsx 的方式进行开发,并且把 next.js 升级到了最新的 v15 版本。在开发过程中,…

前言

最近几天用 next.js 开发了一个小项目,之前的项目基于 next.js 时,我都是使用的 jsx 的方式进行开发。而这次给客户升级,我升级为了 tsx 的方式进行开发,并且把 next.js 升级到了最新的 v15 版本。在开发过程中,遇到几个小坑,这里记录一下。

NEXTJS

目录构建

好,我的 nextjs APP 的目录构建如下所示:

src/app
├── article
│   └── [id]
│       └── page.tsx
├── channel
│   └── [id]
│       ├── [page]
│       │   └── page.tsx
│       └── page.tsx
├── layout.tsx
└── single└── [id]└── page.tsx

好,以上路径匹配路由为

# 首页
/
# 栏目页面
/channel/[id]
# 栏目分页页面
/channel/[id]/[page]
# 文章页面
/article/[id]
# 其他省略。

坑1,在页面中获取动态 id 失败

一开始,我用一下代码获取动态 id,结果获取失败。

export type PageChannelParamsTypes = {params: {id: stringpage?: string}
}export default async ({ params }: PageChannelParamsTypes) => {const { id, page: paramPage = 0 } = params//...
}

用 DeepSeek 和 Claude 3.5 两个 AI 问了半天,都解决不了,无奈,查询官方文档,最终解决了问题。调整后的代码如下:

export type PageChannelParamsTypes = {params: {id: stringpage?: string}
}export default async ({ params }: PageChannelParamsTypes) => {const { id, page: paramPage = 0 } = await params//...
}

OK, 终于可以获得 id 等参数了。我告诉 DeepSeek ,这里需要加一个 await ,DeepSeek 跟我犟嘴,非说我的代码是错误的。。。。

不管它,终于跑起来了。

坑2, 在编译过程中,提示出现失败

终于,把项目开发差不多了,准备编译一下,开心的运行了 pnpm run build 命令,然后我心拔凉拔凉的,编译失败,有如下报错:

 next build▲ Next.js 15.1.8Creating an optimized production build ...✓ Compiled successfullyLinting and checking validity of types  ...Failed to compile.src/app/article/[id]/page.tsx
Type error: Type 'PageParamsTypes' does not satisfy the constraint 'PageProps'.Types of property 'params' are incompatible.Type '{ id: string; }' is missing the following properties from type 'Promise<any>': then, catch, finally, [Symbol.toStringTag]Next.js build worker exited with code: 1 and signal: null

继续问 AI,答非所问,乱改一通。全部拒绝后,再次翻阅官方文档,终于解决了问题,最终代码如下:

export type PageChannelParamsTypes = {params: Promise<{id: stringpage?: string}>
}export default async ({ params }: PageChannelParamsTypes) => {const { id, page: paramPage = 0 } = await params//...
}

在类型定义的时候,需要给 id 和 page 这个对象,包裹上 Promise 才能通过编译。并且,在编辑器里,不再提示这个 await 是多余的了。

编译结果
最终顺利通过编译。

官方文档

官方文档地址如下:https://nextjs.org/docs/app/api-reference/file-conventions/page#params-optional
官方文档截图

小结

有时候,尤其是 AI 开始瞎编乱造时,一定要查阅官方文档,不能过度信赖 AI。

也怪我自己看得不仔细,第一次看的时候,只注意到了 await,没注意到上面还有一个 Promise 最终在一个坑里被埋了两次。

哎~还是自己用 nextjs 用得少的缘故。

各位看官,你在开发的过程中遇到过什么坑呢,欢迎在评论区交流!顺便用发财的小手点一下赞吧!谢谢!

http://www.dtcms.com/wzjs/354090.html

相关文章:

  • php 企业网站模板哪家培训机构学校好
  • 日照网站建设网站优化企业整站推广
  • 东莞最好的网站建设seo北京优化
  • javascript网页实例做整站优化
  • 做网站成功的企业行业网站有哪些平台
  • 上海国际人才网成都网络优化公司有哪些
  • 做网站的目的和要求seo关键词优化指南
  • 类似凡科建站的网站长春关键词搜索排名
  • 自己怎么做视频网站网站怎么推广出去
  • 北京网站建设 seo公司关键词排名点击软件首页
  • 网站建设新闻资讯软文写作要求
  • 那个网站做外贸好怎么建网址
  • 郑州市金水区建设局官方网站怎么免费搭建自己的网站
  • 有个性的个人网站重庆seo排名技术
  • 最牛的手机视频网站建设网站交易网
  • 网站制作怎么做下拉菜单网络营销是做什么的
  • 长沙做网站团队百度最新人工智能
  • 重庆seo网站电商网站建设价格
  • 可以做外贸的网站有哪些百度网站收录提交入口
  • 开发app和微网站有哪些功能互联网营销师证书含金量
  • 网站中的搜索功能怎么做的成人用品推广网页
  • 设计师主题 wordpress温州seo按天扣费
  • wordpress快站 独立Ipseo技术培训海南
  • 江苏住房和城乡建设部网站谷歌海外推广
  • 网站开发团队需要哪些人网站建设合同
  • 做网站app是什么h行业全网营销推广公司
  • 企业网站注销流程app网络推广方案
  • 海口网站建设多少钱无锡seo网站排名
  • 精品网站建设费用 c磐石网络高端快速建站
  • 丰宁县网站建设站长之家论坛