当前位置:网站首页 > 技术博客 > 正文

动态路由原理是什么



添加路由到你的路由上通常是通过 配置来完成的,但是在某些情况下,你可能想在应用程序已经运行的时候添加或删除路由。具有可扩展接口(如 Vue CLI UI )这样的应用程序可以使用它来扩展应用程序。

动态路由主要通过两个函数实现。 和 。它们注册一个新的路由,也就是说,如果新增加的路由与当前位置相匹配,就需要你用 或 来手动导航,才能显示该新路由。我们来看一个例子:

想象一下,只有一个路由的以下路由:

进入任何页面,,,或者 最终都会呈现 组件。如果我们在 上添加一个新的路由:

页面仍然会显示 组件,我们需要手动调用 来改变当前的位置,并覆盖我们原来的位置(而不是添加一个新的路由,最后在我们的历史中两次出现在同一个位置):

记住,如果你需要等待新的路由显示,可以使用 。

如果你决定在导航守卫内部添加或删除路由,你不应该调用 ,而是通过返回新的位置来触发重定向:

上面的例子有两个假设:第一,新添加的路由记录将与 位置相匹配,实际上导致与我们试图访问的位置不同。第二, 在添加新的路由后返回 ,以避免无限重定向。

因为是在重定向中,所以我们是在替换将要跳转的导航,实际上行为就像之前的例子一样。而在实际场景中,添加路由的行为更有可能发生在导航守卫之外,例如,当一个视图组件挂载时,它会注册新的路由。

有几个不同的方法来删除现有的路由:

  • 通过添加一个名称冲突的路由。如果添加与现有途径名称相同的途径,会先删除路由,再添加路由:
  • 通过调用 返回的回调:当路由没有名称时,这很有用。
  • 通过使用 按名称删除路由:需要注意的是,如果你想使用这个功能,但又想避免名字的冲突,可以在路由中使用 作为名字。

当路由被删除时,所有的别名和子路由也会被同时删除

要将嵌套路由添加到现有的路由中,可以将路由的 name 作为第一个参数传递给 ,这将有效地添加路由,就像通过 添加的一样:

这等效于:

Vue Router 提供了两个功能来查看现有的路由:

  • :检查路由是否存在。
  • :获取一个包含所有路由记录的数组。

版权声明


相关文章:

  • jediscluster和redistemplate2025-03-17 16:30:01
  • javassm框架是什么2025-03-17 16:30:01
  • 左外连接 右外连接2025-03-17 16:30:01
  • usb串口线驱动com2025-03-17 16:30:01
  • sql server游标的作用2025-03-17 16:30:01
  • 新闻管理系统流程图2025-03-17 16:30:01
  • 有哪些项目是k8s集群2025-03-17 16:30:01
  • fstream读取文件2025-03-17 16:30:01
  • l-s算法2025-03-17 16:30:01
  • rapid程序是由什么组成2025-03-17 16:30:01