首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在next.js中执行路由的最佳方法是什么

在next.js中执行路由的最佳方法是什么
EN

Stack Overflow用户
提问于 2018-12-13 06:02:56
回答 1查看 465关注 0票数 1

我是javascript的初学者,但我正在使用next routes,它在幕后使用path-to-regexp。

我有一个页面,其中有一个链接列表。这个页面的路径是/locations/s-:specialty-providers,其中“专业”是唯一的动态部分。

当我点击页面上的一个链接时,它会将我重新路由到/locations/s-s-:specialty-providers/:abbr (专业和缩写都是动态的),而它应该重新路由到/locations/s-:specialty-providers/:abbr

路由文件:

{ name: 'sitemap-providers-location-procedure', page: 'sitemap/providers/by_location/by_procedure', pattern: '/locations/:procedure-providers' }, { name: 'sitemap-specialties-location-city', page: 'sitemap/specialties/by_location/by_city', pattern: '/locations/s-:specialty-providers/:abbr' },

EN

回答 1

Stack Overflow用户

发布于 2018-12-13 14:50:41

通过将文件放入pages目录,Next.js将为您提供开箱即用的路由

假设你有pages/index.js

代码语言:javascript
复制
    import Link from 'next/link'

function getSitemaps () {
  return [
    {
      id:"1",
      title: "sitemap-providers-location-procedure",
      s: "providers",
      abbr: "by_procedure",
    },
    {
      id:"2",
      title: "sitemap-specialties-location-city",
      s: "specialties",
      abbr: "by_city",
    }
  ]
}

const SitemapLink = ({post}) => (
  <li>
    <Link as={`/sitemap/${post.s}/by_location/${post.abbr}`} href={`/sitemap?title=${post.title}`}>
      <a>{post.title}</a>
    </Link>
  </li>
)

export default () => (
<div>
  <h1>Links</h1>
  <ul>
    {getSitemaps().map((sitemap) => (
      <SitemapLink key={sitemap.id} post={sitemap}/>
    ))}
  </ul>
</div>
)

还有另一个文件pages/sitemap.js

代码语言:javascript
复制
    import {withRouter} from 'next/router'

const Page = withRouter((props) => (
  <div>
    <h1>{props.router.query.title}</h1>
    <p>This is the page content.</p>
  </div>
))

export default Page

现在,您有了动态路由。

您不需要在next.js中使用任何魔法或模式来创建路由。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53752057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档