标签

  1. import react, { Component } from 'react'
  2. import Link from 'next/link'
  3. export default class Index extends Component {
  4. render() {
  5. return (
  6. <div>
  7. <Link href={{ pathname: '/request/request', query: { name: 'Zeit' } }}>Link带参数</Link>
  8. <br />
  9. <Link href="./request/request">Link路由</Link>
  10. </div>
  11. )
  12. }
  13. }
  • pathname 路径
  • query get参数

命令式

  1. import react, { Component } from 'react'
  2. import Router from 'next/router'
  3. export default class Index extends Component {
  4. navManager() {
  5. Router.push('/request/request')
  6. }
  7. render() {
  8. return (
  9. <div>
  10. <button onClick={this.navManager}>here</button>
  11. <button onClick={() => Router.push('/request/request')}>here</button>
  12. </div>
  13. )
  14. }
  15. }

路由事件钩子

  • routeChangeStart(url) - 路由开始切换时触发
  • routeChangeComplete(url) - 完成路由切换时触发
  • routeChangeError(err, url) - 路由切换报错时触发
  • beforeHistoryChange(url) - 浏览器 history 模式开始切换时触发
  • hashChangeStart(url) - 开始切换 hash 值但是没有切换页面路由时触发
  • hashChangeComplete(url) - 完成切换 hash 值但是没有切换页面路由时触发
  1. import react, { Component } from 'react'
  2. import Router from 'next/router'
  3. const handleRouteChange = () => {
  4. console.log("handleRouteChange")
  5. }
  6. Router.events.on('routeChangeStart', handleRouteChange) //在路由发生变化时候调用
  7. export default class Index extends Component {
  8. navManager() {
  9. Router.push('/request/request')
  10. }
  11. render() {
  12. return (
  13. <div>
  14. <button onClick={this.navManager}>here</button>
  15. </div>
  16. )
  17. }
  18. }