相关文章推荐
茫然的显示器  ·  php ...·  5 月前    · 
深沉的火柴  ·  Windows ...·  1 年前    · 

因为公司的前台项目需要做seo优化,单页应用项目是不适合做seo的,然后就选择了next.js,之前是搞vue出身了,react简直就是个白纸,菜鸟。

我们都知道如果在react中路由跳转使用,link 和 this.history.push

那么在 next中怎么跳转的呢,和怎么获取参数呢。
其实也是这两种呢, 只不过next可能封装了下吧

  1. 也是link方式
import Link from "next/link"

使用
注意它这个是 使用的 href 好像 和 react中还有点不用 react中是 to

<link href="/home"><a>跳转到首页</a></Link>

同时link是不支持兄弟标签的 比如 下面这种就不是正确的

<link href="/home">
<a>跳转到首页</a>
<a>跳转到首页</a>
</Link>

当然有的时候 会在Link中放入一个 组件 ,或者放置一个函数组件的话 ,可以去官网做深入了解 飞机票
这就不赘述了 ,只做简单入门

link也支持 对象形式的写法,

<link href={{pathname: '/', query: ''}}></Link>
  1. 第二种跳转方式 就是 通过js方式跳转了
import Router from "next/router"

他这个也是有两个写法

Router.push('/?name=zyc');
Router.push({pathname: '/', query: {}})
  1. 说完了 跳转 传值 那么就要说下 怎么接受参数了

接受参数也是两种,
一种就是 withRouter 二种是 useRouter(hook用法)
我这里全用 函数组件做例子哈

withRouter方式 这个在之前的react版本中可能用的也比较多

import { withRouter } from 'next/router'
const Post = ({router}) => {
    const { pid } = router.query
    console.log(router, '============')
    return <p>Post: {pid}</p>
export default withRouter(Post)

useRouter方式 hooks方式

import { useRouter } from 'next/router'
const Post = () => {
    const router = useRouter()
    const { pid } = router.query
    console.log(router, '============')
    return <p>Post: {pid}</p>
export default Post

关注我 持续更新前端知识 一起 努力

使用 Next.js 有很多好处,但一个非常有用的特性是它的文件路由系统。这种架构显着简化了在网站内创建路由的过程。在本教程中,我们将学习如何设置 Next.js 项目以及 Next.js 中的文件路由系统如何工作。 我们还将学习如何: 创建静态和动态页面 Link用, 以及它的一些 props实现页面换 使用useRouter()钩子从 URL 获取查询参数 动态嵌套路由 ……还有更多。 我们将通过构建一个投资组合页面来了解所有这些。 Next.js 功能 Next.js 是一个基于 R next-webgl 像2018年一样使用OpenGL。 这个程序演示了如何在React中使用WebGL。 现代JavaScript和热重装使其非常适合快速原型制作和在线演示。 借助Next.js导出功能,可以轻松将其部署到静态Web托管中。 安装并将其bin/目录添加到$PATH 。 确保从命令行可以使用node和npm : $ node --version v10.1.0 $ npm --version 6.0.1 安装/更新npm和yarn: npm install -g npm yarn 克隆该存储库, cd进入其中,并使用以下命令安装依赖项: cd next-webgl/ yarn install 为了方便起见,将./node_modules/.bin添加到$PATH : export PATH=./node_modules/.bin:${PATH 完美的入门工具包,可使用Next.js和Notion构建漂亮的网站。 Next.js Notion入门工具包完美的入门工具包,可用于通过Next.js和Notion构建漂亮的网站。 简介此仓库是我用来为我的个人博客/投资组合网站transivebullsh.it供电的功能。 它使用Notion作为CMS,从根Notion文档中获取内容,然后使用Next.js和react-notion-x呈现所有内容。 然后将该站点部署到Vercel。 功能设置仅需几分钟(单个配置文件):flexed_biceps:通过react-notion-x对Notion内容提供强大的支持 到并创建一个新的API密钥。 将.env.example重命名为.env.local并在其中添加API密钥。 NEXT_PUBLIC_PEXELS_API_KEY = 通过运行以下命令来安装依赖项。 npm install 启动开发服务器: npm run dev yarn dev 用浏览器打开以查看结果。 您可以通过修改pages/index.js来开始编辑页面。 页面在您编辑文件时自动更新。 要了解有关Next.js的更多信息,请查看以下资源: -了解Next.js功能和API。 交互式Next.js教程。 您可以查看-欢迎您提供反馈和意见! 在Vercel上部署 部署Next.js应用程序的最简单方法是使用Next.js创建者提供的Vercel平台。 请查看我们的Nex Nextjs里的路由相对于统ReactRouter路由更能满足SEO优化的需求,通过路径来进行路由更能被搜索引擎收录。相当于localhost:3000/user/:id这个id可以动态改变,都可以访问到对应的文件。考:nextjs.cn/docs/basic-features/script。见: nextjs.cn/docs/basic-features/pages。值得注意的是这样的js脚本都是在页面最好执行的。效果如下:"/"代表从public目录下开始。如:完成动态路由的。 http://localhost:3000/ 代表的 /page/index.tsx. http://localhost:3000/demo指的是page --> demo -->index.tsx文件。 2.动态路由 在 Next.js 中,您可以将括号添加到页面 ([param]) 以创建动态路由(也称为 url slugs、pretty urls 等)。pages/post/[pid.. next.js给我们配置好路由了,next.js默认匹配pages目录的index.js作为根路径/,其他的路径也是这样按文件名匹配的。而我们的各种路由依赖的不再是react-router而是next.js给我们封装好的路由 在pages文件夹新建文件夹 my ,在my里新建my.js 在浏览器输入 http://localhost:3000/my/my,就能到my页... 例如,app/shop/[...slug]/page.js 将匹配 /shop/clothes,但也会匹配 /shop/clothes/tops、/shop/clothes/tops/t-shirts 等。例如,app/shop/[[…slug]]/page.js也将匹配/shop,此外还有/shop/衣服、/shop/服装/上衣、/shop/服装/上衣/t恤。如博客可以包含以下路由 app/blog/[slug]/page.js,其中 [slug] 是博客文章的动态分段。 router.beforeEach((to, from, next) => { let token = window.sessionStorage.getItem('token'); if (to.path != '/login' && !token) {...