首页
学习
活动
专区
工具
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.4K20

梳理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.9K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

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

    2.5K20

    使用 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.7K20

    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.9K20

    基于 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.5K30

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

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

    5.9K51

    助力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.5K81

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

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

    3.8K20

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

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

    1.9K30

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

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

    1.9K50

    一起来学 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 主要用于

    1.5K30

    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预渲染页面。...静态生成的网站通常通过消除在初始渲染过程中不需要的一些代码来减小代码大小。 何时使用静态网站生成和服务器端渲染? 对于主要包含静态信息且需要高流量的网站,使用静态网站生成是合适的选择。

    27710

    基于React的SSG静态站点渲染方案

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

    19510

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

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

    3.2K51

    从 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.9K11

    ​未来全栈框架会卷的方向

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

    21730

    Next.js 简明教程

    ,都不是纯静态的,我们需要数据查询才能渲染那个页面,而这些就需要同构钩子函数来满足,有了这些钩子函数,我们才可以在不同需求下作出极佳体验的web应用。...Next 在9.3中更近了一步,引入了getStaticProps和getStaticPaths方法来让开发者指定哪些页面可以做SSG优化。...使用getStaticProps方法在build阶段返回页面所需的数据。 如果是动态路由的页面,使用getStaticPaths方法来返回所有的路由参数,以及是否需要回落机制。...Next 在9.5.0之后getStaticProps方法可以增加revalidate的属性以此来重新生成缓存,这点就很强大:页面加载仍然很快,页面永不离线,即使重新生成失败,老的还可以访问,而且可以大幅减少数据库...上述app和document中使用getServerSideProps或者getInitialProps方法让整个应用都无法自动静态优化 上述app和document中在浏览器中不执行,包括react

    3K20
    领券