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

使用 NextJS 和 TailwindCSS 重构我的博客

接下来介绍下 NextJS 主要 API: getServerSideProps 服务端渲染 下面是最简单的客户端渲染代码 import React, { ReactElement, useEffect...而文章内容写完之后是通常不变的,所以可以先将页面静态存储在服务器上,这样就可以大大减小数据库压力。 getStaticProps 在构建时请求数据。...与 TypeORM 对比 TypeORM 是一种传统的 ORM,它将表映射到模型类。这些模型类可用于生成 SQL 迁移。然后,模型类的实例在运行时为应用程序的 CRUD 查询提供一个接口。...,还是比较好用的,但是在文章详情页却没有单独的 TOC(目录)组件,得单独封装一个 TOC 组件了。...喜欢的同学可以 fork 一下,免费部署到 Heroku 中,Heroku 支持免费的 Postgresql 数据库,也可以将程序部署到 https://vercel.app/ (国内比较快,不支持数据库

2.4K20

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

官方文档传送门:nextjs.org/docs SSR SSR也就是服务端渲染,页面在后端先获取到数据,然后发回前端注水渲染,如果你不是很熟悉,可以先看一下SSR相关的文章介绍。...这个API,在请求页面的时候,提前获取到数据,然后传入组件中。...app 在pages路由中,我们要实现SSG,需要先创建一个通用的模版文件,来表示所有的静态页面路由 []中的变量,就代表访问页面时传入的变量名称,然后我们需要实现generateStaticParams...,只需要直接在组件中获取数据即可。...Nextjs在组件中指定了dynamicParams的值(true默认),当dynamicParams设置为true时,当请求尚未生成的路由段时,我们的页面将通过SSR这种方式来进行渲染。

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

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

    零配置 优秀的开发者体验 使用 NextJS,我们花更多的时间编写功能,而不是在构建工具和 Webpack 上挣扎 自动路由 NextJS 将项目结构化为页面,并添加路由 数据获取 根据应用程序的用例以不同的方式呈现内容...这是另一个与 SEO 相关的因素 性能 # 缺点 研发管理 如果你想使用 NextJS 构建一个在线商店,但是你没有内部的开发团队,你将需要一个专门负责开发和管理的人员 路由问题 由于基于文件的路由限制了...Next.js 在节点路由方面的能力,因此如果你的项目需要动态路由,你将不得不使用 Node.js 服务器 没有状态管理器 Next.js 框架中没有内置的状态管理器 为了充分利用状态管理器,你将需要另一个工具来完成它... div> ); }; export default Contact; # 带数据的静态页面 内容依赖外部数据 function UserList({ users }) {...通过导出名为 getServerSideProps 的异步函数,可以在每个请求时生成 HTML。

    3.9K10

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

    {js,ts,jsx,tsx}']打包时只会提取使用到的样式,让应用css最小化。 4、之前写了《使用 CSS variables 和Tailwind css实现主题换肤》也运用到了我的博客中。...接下来介绍下 NextJS 主要 API: getServerSideProps 服务端渲染 下面是最简单的客户端渲染代码 import React, { ReactElement, useEffect...而文章内容写完之后是通常不变的,所以可以先将页面静态存储在服务器上,这样就可以大大减小数据库压力。 getStaticProps 在构建时请求数据。...prisma —— 下一代 ORM 框架 Nodejs 框架访问数据库,往往会需要一个ORM 框架来帮我们管理数据层代码,而在 Node.js 社区中,sequelize、TypeORM 等框架都被广泛应用...,还是比较好用的,但是在文章详情页却没有单独的 TOC(目录)组件,得单独封装一个TOC组件了。

    2.7K20

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

    开源不易,感谢你的支持,❤ star concent^_^ [image.png] 序言 nextjs是一个非常流行的 React 服务端渲染应用框架,它很轻量,简单易上手,社区活跃,所以当我们使用react...写一个需要ssr(server side render)的应用的话,基本都会首选nextjs,concent是一个新生代的react状态管理方案,它内置依赖收集系统,同时兼具有0入侵、可预测、渐进式、高性能的特点...,而getStaticProps是构建时执行,我们先处理getServerSideProps这种情况吧,看看如何集合concent做预渲染支持。...// 此函数在每次请求改页面时被调用 export async function getServerSideProps() { // 调用外部 API 获取博文列表 const res = await...store即可 // 此函数在每次请求时被调用 export async function getServerSideProps() { // 调用外部 API 获取博文列表 await delay

    2.5K81

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

    比如需要用户触发的代码,只会运行在浏览器端。 我们的代码也不能随意编写,必须保证在两端都能运行。比如 window,在 Node.js 中没有这个对象,就会报错。...页面切换时 App 不会销毁,App 里面的组件会销毁。我们可以用 App 保存全局状态。 CSS 也是一样,全局的 CSS 放在 _app.js 中。...有前端基础的同学就知道,不支持改文件名,会影响我们的缓存策略。 如果 public 中的静态资源没有加缓存,这样每次请求资源都会去请求服务器,造成资源浪费。...一是白屏,目前解决方法是在 AJAX 得到相应之前,页面中先加入 Loading。二是 SEO 不友好,因为搜索引擎访问页面时,默认不会执行 JS,只能看到 HTML,看不到 AJAX 请求的数据。...代码 和 SSG 代码基本一致,不过使用的函数换成 getServerSideProps。 写一段代码,显示当前用户浏览器是什么。

    3.9K20

    Next.js的创建与使用

    NextJs是React的服务器渲染框架,区别于官方SSRNext最大的特点是可以渲染出Ajax异步请求渲染出来的结果,本网站目前使用的前端框架就是NextJs 本文章默认你已将学会了React,如果你不会...),状态管理(redex),或者css(css in js、scss)方案都由社区提供,而Next和React最大的区别就是路由以及成果物的渲染方式,核心库基本没有区别因为在NextJs官网声明了NextJs...> ) } } exportdefault withRouter(MyLink) 适用setTimeout进行延迟跳转路由时就是预加载的最佳适用环境。...在Next中没有单独的文件去配置path和components对应 Next中遵循组件及路由的原则 在page文件夹中: image.png 这样的配置就说明我们注册了5个常规路由一个错误时显示的路由...onclick事件,相当于Vue中router-link的tag属性 CSS解决方案 想React一样NextJs支持CSS in Js和CSS模块化引入,但是与React不同的是import '.

    4K20

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

    在 Next.js 的生产版本中,每当 Link 组件出现在浏览器的视口中时,Next.js 都会在后台自动预取链接页面的代码。当您单击链接时,目标页面的代码已在后台加载,页面转换将近乎即时。...当浏览器加载页面时,其 JavaScript 代码会运行并使页面完全交互。...HomePage 组件的同名入参中 return { props: ... } } 注意,仅在页面组件内导出该方法 (2)服务端渲染时获取数据 比如用户的个人中心页面,该页面时不需要...SEO 优化的,其数据通常需要实时更新获取,因此采用 SSR 的方式,而 SSR 在服务端获取数据可以借助 getServerSideProps 方法 和构建时获取数据方法类似: export default...function HomePage(props) { ... } // 导出异步获取数据方法 export async function getServerSideProps() { // 获取数据

    5.5K30

    当 Kafka 分区不可用且 leader 副本被损坏时,如何尽量减少数据的丢失?

    经过上次 Kafka 日志集群某节点重启失败导致某个主题分区不可用的事故之后,这篇文章专门对分区不可用进行故障重现,并给出我的一些骚操作来尽量减少数据的丢失。...中,broker0 的副本为 leader 副本; 停止 broker1,此时 topic-1 的 leader 依然是 broker0 的副本,而 broker1 的副本从 ISR 中剔除; 停止...broker0,并且删除 broker0 上的日志数据; 重启 broker1,topic-1 尝试连接 leader 副本,但此时 broker0 已经停止运行,此时分区处于不可用状态,无法写入消息;...我的骚操作 首先你得有一个不可用的分区(并且该分区 leader 副本数据已损失),如果是测试,可以以上故障重现 1-8 步骤实现一个不可用的分区(需要增加一个 broker): ?...此时,kafka-manager 控制台会显示成这样: ? 但此时依然不生效,记住这时需要重启 broker 0。

    2.6K20

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

    div>加载中div> :    isEmpty ? ...div>没有文章div> :    posts.map(p => div key={p.id}>      {p.id}    div>)    }  div>  );}; export...一般来说,静态内容在代码里写死的,动态内容是来自数据库的。在next中,图上的静态内容会在服务器渲染一次,客户端再渲染一次,为什么?...要么客户端渲染, 会出现白屏要么服务端渲染 SSR,没有白屏服务端渲染(SSR)前提:如果是与用户相关的动态内容,较难提前静态化,需要在用户请求时,获取用户信息,然后通过用户信息去数据库拿数据。...使用SSR:这些更新极快的内容我们可以客户端渲染,下拉更新服务端渲染,下拉更新但这次的服务端渲染不能用getStaticProps,因为getStaticProps是在build时执行的,可用getServerSideProps

    3.8K20

    一起来学 next.js - getServerSideProps 篇

    getServerSideProps 是 next.js 中的一项特色功能,可以让我们在给页面设置一些初始的 props 参数。...文件中 export getServerSideProps const Page = props => { return div>pagediv>; }; export async function...SSR 服务端渲染时,getServerSideProps 中的数据将会被放到全局的 _NEXT_DATA 中,用于 hydrate。...props: await getContent() }; }; 问题 还有一点需要注意的是,虽然 getServerSideProps 为 server 端代码,但是客户端打包时好似仍然会将对应的代码打包到页面中...总结 通过 next.js 的 getServerSideProps,我们在开发中可以很好的协调前后端数据,一些页面初始化数据、页面鉴权可以直接在 getServerSideProps 中进行处理,这样可以大大简化页面逻辑

    1.7K51

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

    getStaticProps 主要用于构建时落地一些静态数据,但不同于 getServerSideProps,getStaticProps 默认情况下只会在构建时执行一次,之后的每次请求都会使用构建时的数据...调用时机 再来看下 getStaticProps 的调用时机,这里和 getServerSideProps 存在很大差异: 当执行 next build 时 当 getStaticPaths 返回 fallback...之后的每次请求都会使用构建时的数据。...而 fallback 为 true 时会有一些不同,当访问不存在的页面时不会返回 404,而是会返回动态路由页面,并且使用页面参数去请求 getStaticProps 数据,然后生成静态页面和 JSON...当然,要注意数据的安全性等问题。如果遇到页面中既有动态数据又有静态数据,那还是老老实实使用 getServerSideProps 吧。

    1.4K30

    Next.js 简明教程

    `getServerSideProps`(SSR)每次访问时请求数据 页面中export一个async的getServerSideProps方法,next就会在每次请求时候在服务端调用这个方法。...也就是使用它的页面,如果是浏览器渲染你需要在组件内再显示地请求一次。开发体验不太好。 如果没有特殊问题,建议使用getServerSideProps替代getInitialProps方法。...Next.js 再9.0的时候引入了自动静态优化的功能,也就是如果页面没有使用getServerSideProps和getInitialProps方法,Next在build阶段会生成html,以此来提升性能...如果页面内容真动态(例如,来源数据库,且经常变化), 使用getServerSideProps方法的SSR。 如果是静态页面或者伪动态(例如,来源数据库,但是不变化),可以酌情使用SSG。.../pages/_app.tsx来自定义应用App,可以配置全局的css,或者getServerSideProps方法来给每个页面添加数据。

    3K20

    React 应用架构实战 0x3:构建和配置页面

    } div> ); }; export default UserProfile; 这种方法在不考虑 SEO 和初始页面加载性能时是可以接受的。...它的返回值可以包含 props 属性,这些将传递给组件的 props。 我们需要记住的是,并没有适用于所有情况的完美渲染策略;因此,必须权衡利弊并根据需求选择使用哪种策略。...然而,它也有一些缺点: 如果 Layout 组件跟踪一些内部状态,当页面更改时会丢失它 页面会失去滚动位置 任何我们想要在最终返回之前返回的内容,也需要将其包装在 Layout 中 对于我们的应用程序,...得益于 React 的优化,当在具有相同布局的页面之间导航时,所有布局组件状态都将继续保持。 我们已经构建了布局组件,现在只需要将它们添加到我们的页面中即可。...404.tsx 文件是一个特殊的页面,每当用户访问未知页面时,它就会显示出来。

    82820

    5w字长文带你【从0使用NextJS+SSR开发博客系统】 | 技术创作特训营第五期

    当接口调用成功的时候,将验证码保存到session中,同时返回200状态码和成功的数据,当失败的时候,返回失败的原因 const { statusCode, templateSMS, statusMsg...提供 getServerSideProps 来获取数据,返回到props中,然后在react组件中通过props获取数据进行渲染,达到ssr效果。...,提示发布成功,并且将新发布的评论 添加到 评论列表中,显示在评论中。...当 当前用户id 能够在 接口返回的users中返回的id中能够找打,则表明 当前用户 已关注了 这个标签,则页面上显示 已关注,否则显示关注。...当显示已关注的时候,按钮事件则是 取消关注的逻辑,否则则是 关注的逻辑。

    1.6K30

    React 必学SSR框架——next.js

    getServerSideProps(SSR)每次访问时请求数据 页面中export一个async的getServerSideProps方法,next就会在每次请求时候在服务端调用这个方法。...也就是使用它的页面,如果是浏览器渲染你需要在组件内再显示地请求一次。开发体验不太好。 如果没有特殊问题,建议使用getServerSideProps替代getInitialProps方法。...App: NextPage = props => { return div>div> } export const getServerSideProps: GetServerSideProps...Next.js 再9.0的时候引入了自动静态优化的功能,也就是如果页面没有使用getServerSideProps和getInitialProps方法,Next在build阶段会生成html,以此来提升性能...如果页面内容真动态(例如,来源数据库,且经常变化), 使用getServerSideProps方法的SSR。 如果是静态页面或者伪动态(例如,来源数据库,但是不变化),可以酌情使用SSG。

    7.7K20

    React 服务端渲染

    ,首次加载时,需要先下载整个 SPA 脚本程序,浏览器执行代码逻辑后,才能去获取页面真正要展示的数据,而 SPA 脚本的下载需要较长的等待和执行时间,同时,下载到浏览器的 SPA 脚本是没有页面数据的,...浏览器实际并没有太多的渲染工作,因此用户看到的是没有任何内容的页面,不仅如此,因为页面中没有内容,搜索引擎的爬虫爬到的也是空白的内容,也就不利于 SEO 关键字的获取; 相较于传统的站点,浏览器获取到的页面都是经过服务器处理的有内容的静态页面...,因为首次加载时,服务器会先将渲染好的静态页面返回,在静态页面中再次加载请求 SPA 脚本; 基本原理:首页内容及数据,在用户请求之前生成为静态页面,同时加入 SPA 的脚本代码引入,在浏览器渲染完成静态页面后...已经帮我们做好相关内容及文件和代码 服务端渲染方法 getServerSideProps() 这个方法是服务端渲染的方法,适合页面数据实时变化的应用;getServerSideProps() 方法接收一个参数...,默认直接进行静态生成,如果组件需要在其他地方获取数据,在构建时 Next.js 会预先获取组件需要的数据,然后再对组件进行静态生成 我们来对比一下,开发环境不会打包静态文件,生产环境打包,默认生成静态文件

    2.3K50
    领券