首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 NextJS TailwindCSS 重构我博客

而文章内容写完之后是通常不变,所以可以先将页面静态存储服务器上,这样就可以大大减小数据库压力。 getStaticProps 构建时请求数据。...Prisma 是一种新 ORM,它缓解了传统 ORM 许多问题,例如: 模型实例膨胀、业务与存储逻辑混合、缺乏类型安全性由延迟加载引起不可预测查询。...,一篇文章可以有多个分类,一个分类下可以有多篇文章, categories 可以选择已经存在分类,也可以是新加分类,通过name唯一熟悉来判断是否要新增还是级联。...1、MySQL 里有只有 utf8mb4 才能显示 emoji 坑, Pg 就没这个坑; 2、Pg 可以存储 array json, 可以 array json 上建索引; 代码编辑器 从上一版是...喜欢同学可以 fork 一下,免费部署到 Heroku ,Heroku 支持免费 Postgresql 数据库,也可以程序部署到 https://vercel.app/ (国内比较快,不支持数据库

2.2K20

React 设计模式 0x5:服务端渲染 SSR

零配置 优秀开发者体验 使用 NextJS,我们花更多时间编写功能,而不是构建工具 Webpack 上挣扎 自动路由 NextJS 项目结构化为页面,并添加路由 数据获取 根据应用程序用例以不同方式呈现内容...这是另一个与 SEO 相关因素 性能 # 缺点 研发管理 如果你想使用 NextJS 构建一个在线商店,但是你没有内部开发团队,你需要一个专门负责开发管理的人员 路由问题 由于基于文件路由限制了...Next.js 节点路由方面的能力,因此如果你项目需要动态路由,你将不得不使用 Node.js 服务器 没有状态管理器 Next.js 框架没有内置状态管理器 为了充分利用状态管理器,你需要另一个工具来完成它...为了生成页面,我们需要导出页面组件 getStaticProps 函数(需要时候,还可以导出 getStaticPaths 函数)。....js 文件,用于根据用户 id 显示单个用户详细信息

3.9K10
您找到你想要的搜索结果了吗?
是的
没有找到

使用 NextJS TailwindCSS 重构我个人博客

而文章内容写完之后是通常不变,所以可以先将页面静态存储服务器上,这样就可以大大减小数据库压力。 getStaticProps 构建时请求数据。...id 获取文章详情 export async function getStaticProps({ params }) { // 如果页面的路由是 /posts/1, 这 params.id 值就是...Prisma 是一种新 ORM,它缓解了传统 ORM 许多问题,例如: 模型实例膨胀、业务与存储逻辑混合、缺乏类型安全性由延迟加载引起不可预测查询。...,一篇文章可以有多个分类,一个分类下可以有多篇文章, categories 可以选择已经存在分类,也可以是新加分类,通过name唯一熟悉来判断是否要新增还是级联。...1、MySQL 里有只有 utf8mb4 才能显示 emoji 坑, Pg 就没这个坑; 2、Pg可以存储 array json, 可以 array json 上建索引; 代码编辑器 从上一版是

2.6K20

梳理NextJS13两种路由下不同渲染方式:SSG,ISR,SSR,RSC

前言 NextJS是一款基于 React 进行全栈开发框架,是当下非常火React全栈框架之一,去年NextJS发布了V13版本,而本文基于V13版本app路由,来梳理它几种不同渲染方式实现...name=' + name)) as any; return ( //... ); } pages pages路由中,我们需要实现getStaticPathsgetStaticProps...Nextjs组件中指定了dynamicParams值(true默认),当dynamicParams设置为true时,当请求尚未生成路由段时,我们页面通过SSR这种方式来进行渲染。...兜底策略 getStaticPaths 方法还有一个参数 fallback 用于控制未生成静态页面的渲染方式。设置此变量后,我们可以指定路由未生成时页面渲染内容,避免出现报错。...pages pages目录下,可以使用 Suspense开启流渲染能力,组件使用 Suspense 包裹。

1.3K31

CloudBase CMS + Next.js:轻松构建一个内容丰富站点

本文通过带领你构建一个个人博客,以展示如何结合这两者,并最终腾讯云云开发上部署站点。 Demo在线预览 ? 开启环境项目 1....创建环境时,你可以直接选择空模板并勾选免费资源选项即可,最后环境命名为 my-blog。 ? 可以看到,环境已经创建中了。...已经有准备好数据可以直接导入,分别就在 项目源码仓库  ./schema ./data 文件夹。点击导入按钮,然后选择导入文件即可。...getStaticProps 函数暂时不用管,而 param.id 就是路由中匹配到 id,可以借助它,执行获取对应文章内容逻辑。...我们每次访问 CMS 系统并操作,都会经由 HTTP访问服务,导向某个云函数,云函数执行后台逻辑,而系统数据,也都存储云数据库,这也是我们可以通过 @cloudbase/node-sdk 访问云数据库得到

2.4K20

从 Next.js 看企业级框架 SSR 支持

其中,完善静态渲染/服务端渲染支持让 Next.js React 生态独树一帜 二.核心特性 ?...最简单,同时性能也最优预渲染方式就是静态生成(SSG),把组件渲染工作完全前移到编译时: (编译时)获取数据 (编译时)渲染组件,生成 HTML 生成 HTML 静态资源托管到 Web 服务器...只服务端执行(根本不会进入客户端 bundle),返回静态数据会传递给页面组件(上例Home)。...,普通组件不允许,所以要求整页依赖所有数据都组织到一处 至于渲染生成 HTML 部分,借助React 提供 SSR API即可完成 至此,只要是依赖数据有办法提前获取到页面,理论上都可以编译生成静态...不仅如此,Next.js 还提供了鱼熊掌可以兼得混用支持,不同渲染模式结合起来到底有多厉害,且看下篇分解 参考资料 Pages Data Fetching Create a Next.js App:

3.8K11

一起来学 next.js - getStaticPropsgetStaticPaths

; 此处是一个简单动态路由,通过 getStaticPaths 我们可以定义该动态路由匹配路由值,通过 paths[number] params 参数动态路由中参数进行匹配。...返回值 paths 进行遍历,依次取出动态路由进行匹配,匹配后进行静态页面的生成步骤。... path params 传入 getStaticProps ,执行 getStaticProps 获取返回值。...image.png 注意点 这里还有一个比较需要关注问题是 getStaticPaths params 参数需要为字符串,否则将会导致无法匹配,猜测为 next.js 中进行了类型判断 map... getServerSideProps 需要注意 getStaticProps getServerSideProps 无法混用, next.js 定位getStaticProps 主要用于

1K30

基于 Next.js SSRSSG 方案了解一下?

SSR 另一概念是同构渲染,可以看看知乎讨论:什么是前端同构渲染?...是否采用服务端渲染还得综合考虑收益,服务端渲染毕竟会增加服务器计算开销,稳定性相较于 CSR 差一些。...4.5 代码拆分预加载 通过 Next.js 路由功能,可以自动完成页面按需加载当前页面所需代码,同时会自动预加载页面属于自身应用链接。...6.3 获取数据 (1)静态生成时获取数据 服务端构建生成静态页面之前,有时候需要获取一些数据,可以借助 getStaticProps 方法。...SEO 优化,其数据通常需要实时更新获取,因此采用 SSR 方式,而 SSR 服务端获取数据可以借助 getServerSideProps 方法 构建时获取数据方法类似: export default

5.4K30

React 服务端渲染

; 其中 Vue 框架 React 框架都有对应比较成熟 SSR 解决方案,React对应是 Next.js 框架,Vue 对应就是 Nuxt.js,当然,如果你对这些都不感兴趣,也可以自己实现一个...,静态站点生成方案,更适合 CDN、缓存、内容数据无变化页面,比如:宣传页、博客文章、帮助文档、新闻页面、电商产品列表等众多应用场景; Next.js getStaticPropsgetStaticPaths...服务器端渲染访问速度不如静态生成快,但是由于每次请求都会重新渲染,所以适用数据频繁更新页面页面内容随请求变化而变化页面; next.js ,静态生成分为 无数据有数据两种情况; 如果组件不需要在其他地方获取数据...getStaticProps() 方法是个异步方法, Node 环境下执行(构建时执行),因此可以进行文件读写,数据库链接,网络通信等一些列操作 对于这个方法使用,先看 demo: import...Props 属性值会传递给组件 return { props:{data} } } ​ export default ListPage getStaticProps 方法内部必须返回一个对象

2.3K50

Next.js进阶:静态生成、服务器端渲染与SEO优化

Next.js现代Web开发处于重要地位,尤其是其对静态生成(Static Generation, SG)、服务器端渲染(Server-Side Rendering, SSR)以及搜索引擎优化(Search...本文中,我深入探讨这些核心特性工作原理、应用场景及最佳实践,并通过代码示例演示如何在实际项目中高效利用Next.js实现高性能、高SEO友好应用。...一、静态生成(SG)静态生成是Next.js提供一种预渲染技术,它在构建时生成页面的HTML文件,这些文件部署后可以直接由CDN分发给用户,无需服务器参与实时渲染。...使用getStaticProps获取静态数据页面组件中使用getStaticProps生命周期方法获取静态数据。该方法构建时运行,返回数据将用于生成静态HTML文件。...使用getServerSideProps获取服务器端数据与getStaticProps类似,getServerSideProps也服务器端运行,但每次用户请求时都会触发。适合需要实时数据场景。

29210

Next.js - SSR SSG CSR ISR Dynamic Routing

useEffect 请求服务端数据再渲染组件,该动作页面基本静态文件加载完毕后执行,示例代码如下:function Profile() { const [data, setData] = useState...SWR React Hook 包,如果使用客户端渲染的话,强烈推荐使用 SWR,它可以处理缓存、重新验证、焦点跟踪、间隔重新获取等。...ISR (Incremental Static Regeneration) Next.js 中使用增量静态生成,只需 getStaticProps 添加属性 revalidate,该动作在用户发起页面请求时执行...缓存期间内,用户请求会直接返回缓存;缓存时间结束后,用户再次请求,会重新渲染并生成新缓存。使用 ISR,就可以在运行时实现静态页面生成,而无需重新构建整个网站。...Dynamic Routing Next.js 配合使用 getStaticPaths + getStaticProps 即可实现动态路由预渲染,该动作 next build 时执行,示例代码:

1.1K20

动手练一练,使用 React Next.js 做一个简单博客网站(

我们文档标题名称、文档描述、创建日期放置 — 之间,Front-matter 这个 npm 插件基于这个格式可以读取上述相关信息提取文档标题、描述、创建日期。...pages/articles/[id].js 这个文件里实现Next.js 特有的 getStaticPaths() 函数功能(Static Generation),项目构建时生成指定路由路径,比如这个案例...({ params }),项目构建时调用这个函数(Static Generation),通过 id 参数调用 lib/posts-md.js 文件 getFileData() 定义方法, MD...文档内容异步回至包含 postData 属性组件内部(第六点代码部分),示例代码如下: // dynamic route content export async function getStaticProps...方法参数对应),页面构建时生成对应页面路由,你可以参照第一部分基于MD文档生成动态路由这部分内容,具体逻辑你可以考虑下怎么实现,这里就不再介绍了; 三、创建网站导航 为了让用户更方便浏览我们博客网站

1.7K11

Next.js 简明教程

``getStaticPaths`(SSG)构建时请求数据 所谓SSG也就是静态站点生成,类似像hexo或者gatsbyjs都是build阶段页面构建成静态html文件,这样线上直接访问HTML...Next 9.3更近了一步,引入了getStaticPropsgetStaticPaths方法来让开发者指定哪些页面可以做SSG优化。...使用getStaticProps方法build阶段返回页面所需数据。 如果是动态路由页面,使用getStaticPaths方法来返回所有的路由参数,以及是否需要回落机制。...Next 9.5.0之后getStaticProps方法可以增加revalidate属性以此来重新生成缓存,这点就很强大:页面加载仍然很快,页面永不离线,即使重新生成失败,老可以访问,而且可以大幅减少数据库...上述appdocument中使用getServerSideProps或者getInitialProps方法让整个应用都无法自动静态优化 上述appdocument浏览器不执行,包括react

2.9K20

动手练一练,使用 React Next.js 做一个简单博客网站(

我们文档标题名称、文档描述、创建日期放置 — 之间,Front-matter 这个 npm 插件基于这个格式可以读取上述相关信息提取文档标题、描述、创建日期。...pages/articles/[id].js 这个文件里实现Next.js 特有的 getStaticPaths() 函数功能(Static Generation),项目构建时生成指定路由路径,比如这个案例...({ params }),项目构建时调用这个函数(Static Generation),通过 id 参数调用 lib/posts-md.js 文件 getFileData() 定义方法, MD...文档内容异步回至包含 postData 属性组件内部(第六点代码部分),示例代码如下: // dynamic route content export async function getStaticProps...].js(注:index可以换成你想要参数,但是需要和getStaticPaths 方法参数对应),页面构建时生成对应页面路由,你可以参照第一部分基于MD文档生成动态路由这部分内容,具体逻辑你可以考虑下怎么实现

90030

卷起来,前端建站SSG,SSR,ISR,Hydration, Island...一网打尽

应该是NextJS首创,从一定程度上优化了SSG了问题。...简单来说就是提供一种机制能够server自动执行SSG,这点优点也很明显,一是能够让内容尽量保持新鲜,而是从访问行为上仍然保持静态访问。...现在动态网站也能够边缘渲染,让用户享受到更佳体验。 这里问题仍在在于数据,除非是经过特意改造,一般网站数据仍需要请求到一个中心化源服务。...上面NextJsISR或多或少也是为了解决这个问题。当然另一个更彻底思路,边缘节点上也能有数据持久化能力,例如cloudflare,或者使用一些分布式数据库,这里不再展开。...类似,区别于$标注,框架依赖这些标注,构建时候会将这些组件或者逻辑代码独立成单个js。

1.8K30

React 必学SSR框架——next.js

getStaticPaths(SSG)构建时请求数据 所谓SSG也就是静态站点生成,类似像hexo或者gatsbyjs都是build阶段页面构建成静态html文件,这样线上直接访问HTML文件...Next 9.3更近了一步,引入了getStaticPropsgetStaticPaths方法来让开发者指定哪些页面可以做SSG优化。...使用getStaticProps方法build阶段返回页面所需数据。 如果是动态路由页面,使用getStaticPaths方法来返回所有的路由参数,以及是否需要回落机制。...Next 9.5.0之后getStaticProps方法可以增加revalidate属性以此来重新生成缓存,这点就很强大:页面加载仍然很快,页面永不离线,即使重新生成失败,老可以访问,而且可以大幅减少数据库...上述appdocument中使用getServerSideProps或者getInitialProps方法让整个应用都无法自动静态优化 上述appdocument浏览器不执行,包括react

7.4K20

卷起来,前端建站SSG,SSR,ISR,Hydration, Island...一网打尽

应该是NextJS首创,从一定程度上优化了SSG了问题。...简单来说就是提供一种机制能够server自动执行SSG,这点优点也很明显,一是能够让内容尽量保持新鲜,而是从访问行为上仍然保持静态访问。...现在动态网站也能够边缘渲染,让用户享受到更佳体验。这里问题仍在在于数据,除非是经过特意改造,一般网站数据仍需要请求到一个中心化源服务。...上面NextJsISR或多或少也是为了解决这个问题。当然另一个更彻底思路,边缘节点上也能有数据持久化能力,例如cloudflare,或者使用一些分布式数据库,这里不再展开。...类似,区别于$标注,框架依赖这些标注,构建时候会将这些组件或者逻辑代码独立成单个js。

1.8K50

Supabase 与 Next.js 14 完美融合

服务器端组件: Next.js 中使用 Server Components,使得从 Supabase 获取数据变得非常简单。这意味着开发者可以服务器端直接操作数据库,无需担心前端后端分离。...配置 Supabase 使用 Cookies:由于 Supabase 默认使用 localStorage存储用户会话信息,而在服务器端没有 localStorage 概念,因此必须将 Supabase...客户端和服务器端无缝集成:通过适当配置,Supabase 可以客户端和服务器端无缝工作,确保用户会话安全可靠。...如何配置 Supabase 以使用 Cookies 默认情况下, supabase-js 使用 localStorage存储用户会话。...,但由于我们建议使用行级安全性(RLS)策略保护应用程序,您也可以客户端安全地访问用户会话。

55520

如何使用 Nx、Next.js TypeScript 构建 Monorepo

Monorepo 是什么,为什么我们应该考虑使用它 一个monorepo是包含应用程序,工具多个项目项目部分结构单一存储库。它是为每个项目项目的一部分创建单独存储替代方法。...考虑一个场景,我们使用一些前端库框架构建仪表板应用程序。此前端应用程序代码可能存储dashboard存储。此存储库使用 UI 组件可能存储另一个名为 存储components。...上述问题可以通过使用 monorepo 来解决,其中dashboard,componentsmarketing组件驻留在一个单一存储。...使用 monorepo 有多种优点: 包更新要容易得多,因为所有应用程序库都在一个存储。由于所有应用程序包都在同一个存储库下,因此可以轻松测试交付添加新代码修改现有代码。...代码重构要容易得多,因为我们只需一个地方进行,而不是跨多个存储库复制相同内容。 monorepo 允许持续配置 CI/CD 管道,可以被同一存储所有应用程序库重用。

5.4K51
领券