当前位置: 首页 > news >正文

为企业做网站赚钱吗宁波seo关键词费用

为企业做网站赚钱吗,宁波seo关键词费用,微信分享的h5网站开发,宁波专业seo首页优化目录 一、创建一个新项目 二、动态获取后端数据进行服务端渲染出现的问题 三、nextjs13如何进行服务端渲染 nextjs13是nextjs的一个重大升级,一些原本在next12当中使用的API在nextjs13上使用十分不便。本文将着重介绍在nextjs13及以上版本当中进行服务端渲染的方…

目录

一、创建一个新项目

二、动态获取后端数据进行服务端渲染出现的问题

三、nextjs13如何进行服务端渲染


nextjs13是nextjs的一个重大升级,一些原本在next12当中使用的API在nextjs13上使用十分不便。本文将着重介绍在nextjs13及以上版本当中进行服务端渲染的方法。

一、创建一个新项目

npx create-next-app@latest

项目安装成功后,不可避免的要安装其他依赖进行项目开发。但是,在新项目下安装其他依赖的话,终端会爆出以下错误:

 以上错误可能会导致依赖安装不成功,解决的办法是删除node_modules,然后进行pnpm install(本人是用pnpm进行安装包的管理),然后在进行依赖的安装即可。

二、动态获取后端数据进行服务端渲染出现的问题

Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。

在我做的很多项目当中都使用axios进行前后端数据交互,几乎都已经形成习惯了。因此,在进行nextjs13项目当中,我也引入了axios安装包进行前后端数据交互,在客户端数据请求的时候没问题。在开发环境当中,进行服务端数据渲染没有问题。但是,在生产环境中,后端数据变化后,页面上进行服务端请求的数据,并没有发生变化。

问题在于使用axios进行服务端数据请求,在生产打包后,nextjs会将请求到的数据打包进去,生成一个静态的页面。因此,在后端数据发生变化后,静态页面的数据并不会跟着发生变化。

页面上的280000000000000000就是在build的时候,从后端请求回来的数据,生成了一个静态的页面,以后无论后端数据如何变化这个值都不会发生变化,除非重新部署。但是,这种效果很显然不是需求所想要的。既然是从后端拿数据,目的就是当时后端数据发生变化,页面的内容也跟着一起变化,而不是一直不变。写到这里,可能有人提出封装一个组件,进行客户端渲染。这就是个笑话了,使用nextjs的目的就是要进行服务端渲染,以利于SEO。如果什么事情都要客户端去做,那还不如用react构建一个单页面应用,还用nextjs干嘛呢。

三、nextjs13如何进行服务端渲染

遇到问题,凡事儿第一步就是先看官方文档。在官方文档的Fetching Data on the Server with fetch

其实已经给出了答案:

nextjs扩展了本地获取Web API,允许您为服务器上的每个获取请求配置缓存和重新验证行为。React扩展了fetch,以便在呈现React组件树时自动记住fetch请求。你可以在服务器组件、路由处理程序和服务器操作中使用带有async/await的fetch。

也就是说使用fetch进行数据请求,可以进行服务端组件数据渲染。

home.tsx

import fetch from '@/plugins/request/fetch';
import Image from 'next/image';
import HomeEarn from '@/compontent/HomeEarn';
import axios from '@/plugins/request/http';export default async function Home() {const data = await fetch.get('earn_info/liquidity_earn_amount');console.log('🚀 ~ file: page.tsx:18 ~ Home ~ data:', data);/* const res = await fetch('https://node3.ibax.io:8880/api/v1/earn_info/liquidity_earn_amount',{ next: { revalidate: 0 } });const data = await res.json();console.log('🚀 ~ file: page.tsx:22 ~ Home ~ data:', data); */return (<main className="flex min-h-screen flex-col items-center justify-between p-24"><div>{/*  {data.data.amount} */}<HomeEarn></HomeEarn><span>{data.amount}</span><span className="ml-1">{data.tokenSymbol}</span></div></main>);
}

 fetch封装:

import local from '@/network/local';
export type env = 'test' | 'production' | 'development';
const http = {Api() {console.log(process.env.BUILD_ENV);const currNetwork = local[process.env.BUILD_ENV as env];console.log('🚀 ~ file: fetch.ts:7 ~ Api ~ currNetwork:', currNetwork);//  console.log('🚀 ~ file: fetch.ts:5 ~ Api ~ currNetwork:', currNetwork);return currNetwork.api;},async get(url: string, params?: any) {const api = this.Api();const paramsUrl = params? `?${new URLSearchParams(params).toString()}`: '';const res = await fetch(`${api}/api/v1/${url}${paramsUrl}`, {headers: {method: 'GET','Content-Type': 'application/json; charset=utf-8',mode: 'cors'// 'Content-Type': 'application/x-www-form-urlencoded',},//  cache: 'force-cache'cache: 'no-cache'});if (!res.ok) {// This will activate the closest `error.js` Error Boundarythrow new Error('Failed to fetch data');}try {const data = await res.json();if (data.code === 0) {return data.data;} else {return null;}} catch (error) {return null;}},async post(url: string, data?: any) {const api = this.Api();const res = await fetch(`${api}/api/v1/${url}`, {headers: {method: 'POST', // *GET, POST, PUT, DELETE, etc.'Content-Type': 'application/json'// 'Content-Type': 'application/x-www-form-urlencoded',},//  cache: 'force-cache',cache: 'no-cache',body: data ? JSON.stringify(data) : ''});if (!res.ok) {// This will activate the closest `error.js` Error Boundarythrow new Error('Failed to fetch data');}try {const data = await res.json();if (data.code === 0) {return data.data;} else {return null;}} catch (error) {return null;}}
};
export default fetch;

http://www.yayakq.cn/news/253156/

相关文章:

  • 怎么用自己的网站做链轮香河县建设局网站
  • 做电影网站用什么软件叫什么名字吗创业平台加盟
  • 套模板做网站 链接怎么做qq网页注册入口
  • 东光县建设局网站该网站正在紧急升级维护中
  • 货源网站 源码网站域名做固定资产怎么处理
  • 网站 建设运行情况如何查询营业执照注册信息
  • 做网站,就上凡科建站网站托管维护代运营
  • 法语网站建设中山网站制作服务
  • 网盘搜索网站 怎么做惠州百度seo
  • 软件上传到那个网站做宣传网址链接怎么做出来的
  • aspcms手机网站一家做特卖的网站
  • 广州网站建设50强名单湛江专业建站联系方式
  • 企业网站制作 徐州专做母婴食品的网站
  • 上海网站开发哪家好薇可以看禁止访问网站的浏览器
  • 领域网站建设网站设计的收费
  • ps个人网站怎么做网页游戏代理加盟
  • 网站配色 原则wordpress字段默认内容
  • 对网站建设的建议网站维护公司推荐
  • 校庆专题网站建设方案网站建设行业数据
  • 网站搭建的美工设计特殊符号网站
  • 易语言对做网站有什么帮助南阳做网站 汉狮公司
  • 网站后台怎么修改密码win7 iis建立网站
  • html5商业网站开发北大青鸟公司模板网站建设
  • 爱站工具网网站开发预算报价表
  • 做文案的人看什么网站网站建设布吉
  • 什么网站下载素材做图的网站开发环境
  • asp access网站架设教程深圳企业网站建设企业
  • 如何比较网站wordpress淘宝组件插件
  • 电商平台运营费用预算无锡优化
  • 南宁较好的网站建设公司盐山县网站建设价格