Next.js多区域路由疑问:当前是否支持Link组件跨区跳转?
Next.js多区域跨应用路由问题更新说明
当前现状(2024年)
Next.js的多区域(Multi Zones)架构本质还是独立应用实例,各自维护独立的Router对象,这一点目前没有根本性改变。所以跨区域跳转时,Link组件仍然无法直接实现路由导航——因为它只能在当前应用的Router实例内工作,跨应用的路由不在它的处理范围内。
你尝试的代码问题
你用的Link组件写法:
<ul> <li> <Link href="../">Home/Host App</Link> </li> <li> <Link href="/">Admin Home</Link> </li> </ul>
这里的../和/都是相对于当前子应用的路由路径,会被当前应用的Router解析,自然无法跳转到主应用的路由。
可行的解决方案(目前仍需使用)
还是得用原生的<a>标签或者直接修改window.location.href来实现跨区域跳转,比如:
<ul> <li> <a href="/">Home/Host App</a> </li> <li> <Link href="/">Admin Home</Link> {/* 同应用内跳转仍可用Link */} </li> </ul>
这样才能触发浏览器的完整页面跳转,让目标应用的Router接管路由。
关于官方改进
截至2024年,Next.js官方还没有发布针对多区域跨应用Link组件支持的更新。如果后续有相关功能迭代,会在官方文档或更新日志中明确说明,建议关注官方发布的版本更新内容。
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

