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

郑州网站优化网络建设有限公司tornado做网站

郑州网站优化网络建设有限公司,tornado做网站,宁波做360网站推广,网站的外链接数前言 最近想实践下ssr 就打算用nextjs 做一个人博客 , vercel 部署 提供免费域名,来学习实践下ssr ssg nextjs 一个轻量级的react服务端渲染框架 vercel 由 Next.js 的创建者制作 支持nextjs 部署 免费静态网站托管 初始化项目 npx create-next-app p…

前言

最近想实践下ssr 就打算用nextjs 做一个人博客 , vercel 部署 提供免费域名,来学习实践下ssr ssg
nextjs 一个轻量级的react服务端渲染框架
vercel 由 Next.js 的创建者制作 支持nextjs 部署 免费静态网站托管

初始化项目

npx create-next-app project-name --ts

利用脚手架生存默认初始化框架 大概文件夹结构包括
在这里插入图片描述
pages 页面根路径
pages/api 请求服务

pages/_app.tsx 项目根入口
pages/_document.tsx
pages/index.tsx 默认首页

styles 全局页面样式
public 静态资源

yarn dev 启动服务端口默认3000

页面路由

利用nextjs 内置的 文件系统路由 可以创建一个新页面 不需要路由库 会自动根据pages目录创建路由
在pages下面新建posts文件夹 再新建posts/first-post.tsx文件

export default function FirstPost() {return <h1>First Post</h1>;
}

http://localhost:3000/posts/first-post 访问 能看到这个页面
Link 链接组件 使用js 进行浏览器导航切换

import Link from 'next/link';export default function FirstPost() {return (<><h1>First Post</h1><h2><Link href="/">Back to home</Link></h2></>);
}

特性

  1. 客户端导航 利用js切换路由 浏览器没有全面刷新 速度快
  2. 代码自动分割 每个页面只展示当前页面必须的东西 其它页面不会提供 加载快;每个页面独立 互相不干扰,一个报错对其他没有影响
  3. 预获取 Link组件出现在浏览器 生产环境时 在后台会预先获取这个要跳转的页面 当用户点击跳转页面时 业务几乎同时出现
    动态路由
    新建posts/[id].tsx 会根据id 动态生成路由 根据文章id 动态生成路由
export default function Post({postData}:any) {return <div>{postData.title}<br />{postData.id}<br />{postData.date}<br /><div dangerouslySetInnerHTML={{ __html: postData.contentHtml }} /></div>
}// 动态路由 定义要静态生成的路径列表
export async function getStaticPaths() {const paths = getAllPostIds(); //  获取所有的post的ID 列表return {paths,fallback:false // false 如果没有路径匹配 返回404// true}
}export async function getStaticProps({params}:any) {const postData = await getPostData(params.id); // 获取当前ID的文章详情return {props: {postData}}
}

在根目录下新建lib/posts.ts 文件 里面的方法是从根目录下posts文件夹获取md文件 生成数据

const postsDirectory = path.join(process.cwd(),'posts');
export function getAllPostIds() {const fileNames = fs.readdirSync(postsDirectory);return fileNames.map(fileName => {return {params: {id: fileName.replace(/\.md$/,'')}}})
}export async function getPostData(id:string) {const fullPath = path.join(postsDirectory,`${id}.md`);const fileContents = fs.readFileSync(fullPath,'utf8');const matterResult = matter(fileContents);const contentHtml = await remark().use(html).process(matterResult.content)return {id,contentHtml:contentHtml.toString(),...matterResult.data}
}
  • getStaticPaths 定义要静态生成的路径列表 nextjs将静态渲染它指定的所有路径
  • getStaticProps Next.js 将在构建时使用 getStaticProps 返回的props数据预渲染此页面

vercel 部署

  1. 新建仓库 将代码上传到githup 或者 gitlab 上
  2. 创建Vercel账号 https://vercel.com/signup
  3. 导入仓库 https://vercel.com/import/git
  4. 部署 默认会自动识别不需要修改配置 登一段时间后部署成功在这里插入图片描述
  5. 部署成功会在github显示活动记录 选择一个记录
    在这里插入图片描述
  6. 点击记录的deployed 会打开你部署好的页面
    在这里插入图片描述
  7. 部署完成 它会自动监听分支改变 自动部署
http://www.bjxfkj.com.cn/article/108024.html

相关文章:

  • 创建官方网站推广目标怎么写
  • 做废钢那个网站好网站怎么建设
  • 营销型外贸网站制作做海报赚钱的网站
  • 做网站工作室数据分析报告
  • 专门做任务的网站吗做网站做
  • 网站改版提案wordpress中文文章排版插件
  • 专业建站网站2345百度百科
  • 网站的栏目结构简图怎么做个人网站建设价格套餐
  • 相对于网站根目录的的绝对路径wordpress 插件原理
  • 建行企业网站网络规划设计 网站建设
  • 长沙网站排名团队网站结构优化
  • wordpress如何导航网站模板企业网站建设案例有哪些公司
  • 网站加视频如何制作自己的网站链接视频
  • 建网站开发费用哪些网站做电商比较好
  • 网站的自动登录是怎么做的查询网站旗下域名
  • 网站资源库建设报价现在还用dw做网站设计么
  • 做航模的网站信用中国 网站 建设方案
  • 用哪个做网站demowordpress自豪的采用
  • 七彩建设集团官方网站网络服务类型有哪几种
  • 做企业网站服务器深圳团购网站设计价格
  • 本地郑州网站建设营销网站定制公司
  • 贵阳网站建设托管谁帮58同城做的网站吗
  • php 微信 网站开发如何搭建购物平台
  • 网站首页图片大全装修网站开发思路
  • 做告状网站高德地图在海外能用吗
  • 怎么做自己的html网站宣化网站制作公司
  • 做配色的网站竭诚网络网站建设开发
  • 网站界面设计考试建设项目验收公示网站
  • 访客留言网站云主机网站源码
  • 建设网站图片大全做框架表格网站