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

使用 NextJS 和 TailwindCSS 重构我博客

服务器是阿里云 ESC 最低配 优点: 感觉没什么优点; 缺点: 浏览器渲染,搜索引擎无法收录 ESO 优化难,Antd 组件使用方便,但前台页面定制需要覆盖样式; 第三版:NextJS + TailwindCSS...4、之前写了《使用 CSS variables 和 Tailwind css 实现主题换肤》也运用到了我博客。...而文章内容写完之后是通常不变,所以可以先将页面静态存储服务器上,这样就可以大大减小数据库压力。 getStaticProps 构建时请求数据。...Prisma 是一种新 ORM,它缓解了传统 ORM 许多问题,例如: 模型实例膨胀、业务与存储逻辑混合、缺乏类型安全性由延迟加载引起不可预测查询。...它使用 Prisma Schema,以声明方式定义应用程序模型。然后使用 Prisma Migrate 命令, Prisma Schema 会生成 SQL 迁移并根据数据库执行它们。

2.2K20

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

前言 NextJS是一款基于 React 进行全栈开发框架,是当下非常火React全栈框架之一,去年NextJS发布了V13版本,而本文将基于V13版本app路由,来梳理它几种不同渲染方式实现...传统 SSR 执行步骤 服务器上,获取整个应用数据。 服务器上,将整个应用程序数据渲染为 HTML 并发送响应。 浏览器上,加载整个应用程序 JavaScript 代码。...客户端,将 JavaScript 逻辑连接到服务端返回 HTML(这就是“水合”)。 而以上每个步骤必须完成,才可以开始下一个步骤。...app app 目录下组件默认都是 React Server Components,如果你不想使用这个特性,可以组件页面最上面添加use client修饰表示只使用客户端渲染或者SSR。...pages pages目录下,可以使用 Suspense开启流渲染能力,将组件使用 Suspense 包裹。

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

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

你暂时不了解这些概念也没关系,你只需要知道,这种方式下,搜索引擎是无法很好地了解你网站是干什么,所以就算大众搜索引擎搜索你站点相关内容,搜索引擎也很难把你站点排在搜索结果前列。...云开发环境是云开发一个概念,每个云环境都集成了应用开发需要基础能力,比如云数据库、云函数,开发者可以方便地组合、使用它们,为应用开发赋能。TCB-CMS 也是建立云环境之上。... getHomePosts 函数,我们获取了展示用文章。具体逻辑如果不懂也暂时不必深究,现在只需要知道:通过执行 getHomePosts 我们能从云环境 CMS 系统拉取文章列表。...getStaticProps 函数暂时不用管,而 param.id 就是路由中匹配到 id,可以借助它,执行获取对应文章内容逻辑。...我们每次访问 CMS 系统并操作,都会经由 HTTP访问服务,导向某个云函数,云函数执行后台逻辑,而系统数据,也都存储云数据库,这也是我们可以通过 @cloudbase/node-sdk 访问云数据库得到

2.4K20

使用 NextJS 和 TailwindCSS 重构我个人博客

{js,ts,jsx,tsx}']打包时只会提取使用样式,让应用css最小化。 4、之前写了《使用 CSS variables 和Tailwind css实现主题换肤》也运用到了我博客。...而文章内容写完之后是通常不变,所以可以先将页面静态存储服务器上,这样就可以大大减小数据库压力。 getStaticProps 构建时请求数据。...id 获取文章详情 export async function getStaticProps({ params }) { // 如果页面的路由是 /posts/1, 这 params.id 值就是...Prisma 是一种新 ORM,它缓解了传统 ORM 许多问题,例如: 模型实例膨胀、业务与存储逻辑混合、缺乏类型安全性由延迟加载引起不可预测查询。...它使用 Prisma Schema,以声明方式定义应用程序模型。然后使用 Prisma Migrate 命令, Prisma Schema 会生成 SQL 迁移并根据数据库执行它们。

2.6K20

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

零配置 优秀开发者体验 使用 NextJS,我们花更多时间编写功能,而不是构建工具和 Webpack 上挣扎 自动路由 NextJS 将项目结构化为页面,并添加路由 数据获取 根据应用程序用例以不同方式呈现内容...包括使用服务器端呈现静态站点生成进行预渲染以及使用增量静态再生在运行时更新创建内容 中间件 此功能使您可以在请求完成之前运行代码,以便在请求和重定向用户时更改响应到另一个路由 数据安全性 Next.js...这是另一个与 SEO 相关因素 性能 # 缺点 研发管理 如果你想使用 NextJS 构建一个在线商店,但是你没有内部开发团队,你将需要一个专门负责开发和管理的人员 路由问题 由于基于文件路由限制了...Next.js 节点路由方面的能力,因此如果你项目需要动态路由,你将不得不使用 Node.js 服务器 没有状态管理器 Next.js 框架没有内置状态管理器 为了充分利用状态管理器,你将需要另一个工具来完成它...为了生成页面,我们需要导出页面组件 getStaticProps 函数(需要时候,还可以导出 getStaticPaths 函数)。

3.9K10

Next.js + TypeScript 搭建一个简易博客系统

但实际开发我们需要请求 /user、 /shops 等 API,它们返回内容是 JSON 格式字符串。 Next.js 怎么实现呢? 使用 Next.js API 模式。...如果有复杂操作,可以借助 Express 中间件。 Next.js 三种渲染方式 下面我们来做前端部分,用三种渲染方式实现。 客户端渲染 只浏览器上执行渲染。...一是白屏,目前解决方法是 AJAX 得到相应之前,页面先加入 Loading。二是 SEO 不友好,因为搜索引擎访问页面时,默认不会执行 JS,只能看到 HTML,看不到 AJAX 请求数据。...但这种方式所有用户请求内容都一样,无法生成用户相关内容。 代码:getStaticProps 获取 posts 显然,后端最好不要通过 AJAX 来获取 posts。...使用 Next.js 提供方法 getStaticProps 导出数据,NextPage props 参数会自动获取导出数据。

3.5K20

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

Web 应用是多页面、多路由,因此会涉及到各个页面之间跳转,因此有必要熟悉 Next.js 路由使用方式。.../blog/first-post 4.3 动态参数路由 常见于比如博客文章详情页面,文章 id 是动态变化,Next.js 可以使用括号解析到对应命名参数 文件路径对应路由pages/blog...:https://nextjs.org/docs/routing/dynamic-routes 4.4 路由跳转 之前有提到 Next.js 路由预加载功能,需借助 Next.js 提供 next... Next.js 生产版本,每当 Link 组件出现在浏览器视口中时,Next.js 都会在后台自动预取链接页面的代码。当您单击链接时,目标页面的代码已在后台加载,页面转换将近乎即时。...6.3 获取数据 (1)静态生成时获取数据 服务端构建生成静态页面之前,有时候需要获取一些数据,可以借助 getStaticProps 方法。

5.4K30

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

Monorepo 是什么,为什么我们应该考虑使用它 一个monorepo是包含应用程序,工具和多个项目项目部分结构单一存储库。它是为每个项目项目的一部分创建单独存储库替代方法。...考虑一个场景,我们使用一些前端库框架构建仪表板应用程序。此前端应用程序代码可能存储dashboard存储库。此存储库使用 UI 组件可能存储另一个名为 存储库components。...使用 monorepo 有多种优点: 包更新要容易得多,因为所有应用程序和库都在一个存储库。由于所有应用程序和包都在同一个存储库下,因此可以轻松测试和交付添加新代码修改现有代码。...接下来,我们需要将这些凭据存储我们应用程序。...我们构建期间通过getStaticProps获取数据,这是一个 Next.js 函数。但是,如果我们构建期间获取数据,则数据可能会过时。所以,我们使用revalidate选项。

5.5K51

助力ssr,使用concent为nextjs应用加点料

开源不易,感谢你支持,❤ star concent^_^ [image.png] 序言 nextjs是一个非常流行 React 服务端渲染应用框架,它很轻量,简单易上手,社区活跃,所以当我们使用react...Hello next 这里我们将使用create-next-app命令来安装一个基础next示例应用 npx create-next-app hello-next 执行完毕后,可以看到一个如下目录结构...// api路由文件 | | |____hello.js 之后我们项目根目录执行npm run dev将看到一个由next驱动ssr默认首页 [image.png] Hello concent 这里我们将使用...,敲重点啦,如果ui处是有条件语句控制是否要消费状态衍生数据的话,推荐延迟解构写法,这样可以让concent每一轮渲染完毕后收集到视图对数据最小粒度依赖 // ###### 函数组件 function...^_^ 支持预渲染 next提供两种级别的预渲染接口,即getServerSideProps和getStaticProps,两种区别是执行时机不同,getServerSideProps是每次请求页面都会执行

2.4K81

Next.js静态页面渲染技术(静态生成和服务端渲染):BSRSSRSSG

但请注意同构代码时需要使用前后端都存在对象,比如window、document等客户端才有的对象就无法服务端log出来。...全局组件:若需要多处地方使用到同一组件,可使用全局组件,全局组件路径page/_app.js声明。...一般来说,静态内容代码里写死,动态内容是来自数据库next,图上静态内容会在服务器渲染一次,客户端再渲染一次,为什么?...客户端渲染缺点:白屏:ajax得到响应之前,页面之后Loading。...使用SSR:这些更新极快内容我们可以客户端渲染,下拉更新服务端渲染,下拉更新但这次服务端渲染不能用getStaticProps,因为getStaticPropsbuild时执行,可用getServerSideProps

3.4K20

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

应该是NextJS首创,从一定程度上优化了SSG了问题。...简单来说就是提供一种机制能够server自动执行SSG,这点优点也很明显,一是能够让内容尽量保持新鲜,而是从访问行为上仍然保持静态访问。...,复杂场景仍然无法应对。...现在动态网站也能够边缘渲染,让用户享受到更佳体验。 这里问题仍在在于数据,除非是经过特意改造,一般网站数据仍需要请求到一个中心化源服务。...上面NextJsISR或多或少也是为了解决这个问题。当然另一个更彻底思路,边缘节点上也能有数据持久化能力,例如cloudflare,或者使用一些分布式数据库,这里不再展开。

1.8K30

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

应该是NextJS首创,从一定程度上优化了SSG了问题。...简单来说就是提供一种机制能够server自动执行SSG,这点优点也很明显,一是能够让内容尽量保持新鲜,而是从访问行为上仍然保持静态访问。...,复杂场景仍然无法应对。...现在动态网站也能够边缘渲染,让用户享受到更佳体验。这里问题仍在在于数据,除非是经过特意改造,一般网站数据仍需要请求到一个中心化源服务。...上面NextJsISR或多或少也是为了解决这个问题。当然另一个更彻底思路,边缘节点上也能有数据持久化能力,例如cloudflare,或者使用一些分布式数据库,这里不再展开。

1.8K50

一起来学 next.js - getStaticProps、getStaticPaths 篇

getStaticProps 主要用于构建时落地一些静态数据,但不同于 getServerSideProps,getStaticProps 默认情况下只会在构建时执行一次,之后每次请求都会使用构建时数据...不为 false 时 当使用了 revalidate 时 上面给出例子是 getStaticProps 最简单一个例子,只有执行 next build 时才会调用 getStaticProps,...将 path params 传入 getStaticProps 执行 getStaticProps 获取返回值。...image.png 注意点 这里还有一个比较需要关注问题是 getStaticPaths params 参数需要为字符串,否则将会导致无法匹配,猜测为 next.js 中进行了类型判断 map...和 getServerSideProps 需要注意 getStaticProps 和 getServerSideProps 无法混用, next.js 定位getStaticProps 主要用于

1K30

React 服务端渲染

、法、术、器概念;不要仅仅停留在工具使用和一些工具奇技淫巧,更多要向法、道层面成长; 什么是 SSR ?...image-20210201154252505.png 页面路由 Next.js ,页面是被放置 pages 文件夹 Reac 组件,这是框架定义好; 组件需要被默认导出;组件文件不需要引入...服务器端渲染访问速度不如静态生成快,但是由于每次请求都会重新渲染,所以适用数据频繁更新页面页面内容随请求变化而变化页面; next.js ,静态生成分为 无数据和有数据两种情况; 如果组件不需要在其他地方获取数据...getStaticProps() 方法是个异步方法, Node 环境下执行(构建时执行),因此可以进行文件读写,数据库链接,网络通信等一些列操作 对于这个方法使用,先看 demo: import...与 getStaticProps 共同使用,会根据不同请求参数生成不同静态页面,它使用方式比较特殊,代码文件要放在一个目录,同时代码文件文件名,要使用 可选项 文件名形式,如\pages\

2.3K50

静态网站生成器与服务器端渲染有啥区别

如何使用Next.js实现静态网站生成 Next.js使得实现静态网站生成变得简单。本节,我将向您展示如何使用getStaticProps函数为您网站生成静态页面。...getStaticProps函数是一种技术,它指示Next.js构建时使用返回props预渲染页面。这意味着数据获取和页面内容生成是提前完成,存储为静态文件,并在用户请求时提供。...安全性:服务器端渲染可以帮助保护您应用程序敏感数据免受恶意行为者侵害。由于数据从未暴露给客户端,因此无法被截取盗取。 Next.js使实现服务器端渲染变得简单。...本节,我将向您展示如何使用getServerSide函数生成服务器渲染页面。 getServerSideProps函数是一种技术,它指示Next.js服务器上使用返回props预渲染页面。...静态生成网站通常通过消除初始渲染过程不需要一些代码来减小代码大小。 何时使用静态网站生成和服务器端渲染? 对于主要包含静态信息且需要高流量网站,使用静态网站生成是合适选择。

22210

基于ReactSSG静态站点渲染方案

基本原理 通常当我们使用React进行客户端渲染CSR时,只需要在入口index.html文件中置入独立DOM节点,然后引入xxx.js文件通过ReactDOM.render...那么对于我们来说,我们需要将同样React组件客户端一并定义,然后将其输出到页面的Js,也就是说这部分内容是需要在客户端执行。...,当前我们运行组件时候是服务端环境,那么Node环境显然我们是不认识.less文件以及.css文件,实际上先不说这些样式文件,import语法本身在Node环境也是不支持,只不过我们通常是使用...环境运行组件,那么紧接着,考虑到输出SSG时我们通常都需要预置静态数据,例如我们要渲染文档的话就需要首先在数据库中将相关数据表达查询出来,然后作为静态数据传入到组件,然后预输出HTML中将内容直接渲染出来...我们也需要为客户端运行Js文件打包,只不过在这里由于我们需要处理预置静态数据,我们在打包时候同样就需要预先生成模版代码,当我们服务端执行打包功能时候,就需要将从数据库查询或者从文件读取数据放置于生成模版文件

10210

「数据仓库架构」数据仓库三种模式建模技术

优化第三范式查询 对3NF模式查询通常非常复杂,涉及大量表。因此,使用3NF模式时,大型表之间连接性能是一个主要考虑因素。 3NF模式一个特别重要特性是分区连接。...第一阶段,Oracle数据库使用事实表外键列上位图索引来标识和检索事实表必要行。也就是说,Oracle数据库将使用以下查询从事实表检索结果集: SELECT ......Oracle已经实现了执行集合操作非常快速方法,例如AND(标准集合术语交集)(集合联合)、MINUS和COUNT。...带位图连接索引星型转换 除了位图索引之外,还可以星形转换期间使用位图连接索引。...请注意,优化器只有确定基于多个条件这样做是合理情况下才会为维度表生成子查询无法保证将为所有维度表生成子查询。优化器还可以根据表和查询属性决定转换不适合应用于特定查询

3.1K51

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

一.Next.js 简介 The React Framework for Production 面向生产使用 React 框架(废话)。...其中,完善静态渲染/服务端渲染支持让 Next.js React 生态独树一帜 二.核心特性 ?...因此建议优先考虑 SSG,只 SSG 无法满足情况下(比如一些无法在编译时静态生成个性化内容)才考虑 SSR、CSR P.S.CSR、SSR 等更多渲染模式,见前端渲染模式探索 围绕核心预渲染功能...只服务端执行(根本不会进入客户端 bundle),返回静态数据会传递给页面组件(上例Home)。...JSON 供降级页面 CSR 使用,完成之后浏览器拿到数据(客户端填上props),渲染出完整页面 fallback: 'blocking':不降级,并且要求用户请求一直等到新页面静态生成结束(实际上就是

3.8K11

Nextjs任意组件数据加载

NextjsSSR渲染局限性 getInitialProps()方法虽然强大好用,但是现在还存在一个问题——只能在“内页”中使用Nextjs_规定了所有放置到..../component)组件是无法使用getInitialProps()方法。乍一看这样似乎没多大问题,但是某些应用又需要这些组件不能放置到./pages暴露到_url_,又需要异步加载数据。...实现 了解_Nextjs_解执行过程之后实现需求就很简单了——先通过_document_appgetInitialProps()方法完成数据组装,然后将数据传递给对应组件即可。...当然按照分而治之思想不能直接在框架去完成业务事,需要为组件提供一个注册接口然后由_document_app使用注册方法去构建业务数据。.../util/serverInitProps.js可以在任何组件中使用,_app会逐一执行方法获取数据按照kev-value方式设置到ApplicationContext,而任意组件要做仅仅是从ApplicationContext

5K20

​未来全栈框架会卷方向

这里为什么说全球,是因为国内web发展方向主要是更封闭小程序生态 第一阶段前端框架之争,不管争论主题是「性能」还是「使用体验」,最终都会落实到框架底层实现上。...开发者可以hello.tsx文件同时书写前端、后端逻辑,比如如下代码: Post组件对应代码会在前端执行,用于渲染组件视图 getStaticProps方法会在代码编译时在后端执行执行结果会在...首先,这段编译后代码可以直接在后端执行执行时会通过框架提供SERVER_REGISTER方法注册后端方法(比如ID为ID_1getStaticProps)。...post = await db.posts.find('xxx'); // ...后续处理 }}> 请求数据 ); } 这个「按钮点击逻辑」显然无法在前端执行...但是另一方面,如果划分粒度太细(比如细粒度),可能意味着: 更大后端运行时压力(毕竟很多原本前端执行逻辑放到了后端) 降低部分前端交互响应速度(有些前端交互还得先去后端请求回交互对应代码再执行

17930
领券