Next.js 是一个现代成熟的前端框架,相比于常用的其他框架有明显的不同。

  1. 全栈框架

Next.js 是基于 React 的框架。React准确来说只是一个库,采用声明式组件的构建方法,本身只关注视图层组件UI的行为。而 Next.js 则是一个全栈框架,提供了路由、服务器端渲染(SSR)、静态网站生成(SSG)、API 路由等功能,因此非常适合构建需要高性能和SEO优化的应用。

  1. 路由机制

Next.js采用文件系统路由。只需要在 pages 目录下创建文件和文件夹,系统会自动根据文件路径生成相应的路由。例如,pages/index.js 自动变成 / 路由,pages/about.js 就是 /about 路由。

  1. 类型支持

相比于Vue,Next.js天然对TypeScript提供了良好的支持,你可以轻松地将 TypeScript 集成到Next.js项目中。Next.js配置 TypeScript的方式非常简单,开发者可以在创建项目时选择TypeScript,或手动在项目中添加 .ts 和 .tsx 文件。

这些就是next的一些特性,其他的特点和React是类似的。
我发现了一个很好的教材,这是中文翻译,非常适合对next.js的快速上手。
看过教材,我兴致勃勃地制作了一个刷题网站。

因为是刷题网站,所以移动端比较方便。于是我用了anted-mobile 组件库进行开发。项目前期都还正常,后来一运行就会错误,我无论如何也没想到是阿里的这个组件库的问题。我不断的调试,最后才发现一引入库中的组件就会报错,移除就恢复正常了。我在github上发现了此问题的issue,原因是next.js的最新版next19使用了一些新的机制和特性,导致像anted-mobile这样的组件库出现了错误。解决办法就是给next降级,否则ant-mobile可能不会在短期内解决这个问题。
后来我尝试了其他的一些组件库,比如NextUI和shadcn/ui,效果也没有那么好。最后我想到既然项目都默认引入了tailwind,而且页面都很简单,还不如直接自己写样式。于是各个组件都换成了自己定义的函数,除了最后一个轮播图用了一个swiper库。
还有一个问题,就是每次项目启动后都需要服务器渲染后在返回,需要较长时间,报的错也不能准确定位,开发体验远不及vue3得心应手。优点是可以极大利用浏览器的渲染机制和网络的通信机制。这在国内的IT行业还像没有什么优势,第一是因为web应用的开发重心都在各大平台的“小程序”,各大厂商为了用户流量占地为王。其二是因为,搜索引擎和网络环境的影响,浏览器环境的web生态没有国外那么好。

添加新评论