概念
动态路由就是将匹配某种模式下的路由映射到同个组件中,动态路由的本质就是通过url进行传参,可以通过“params”和“query”两种方式来传递动态参数 。 动态路由依赖于 vue-router 实例 router 提供的 addRoute() 函数,可以让我们在路由配置中动态添加路由对象的能力,从而达到动态路由的目的.
以 Vue 为例,动态路由可以通过在路由配置文件中使用 : 来动态改变路由参数 例 path: home/:id,然后通过 $route. params.id 对象获取路由参数 , 方便处理一些需要根据不同参数值进行处理的业务需求,比如用户详情页商品详情页等。
可以参照如下书写(path和name都可):
this.$router.push({
path: "/task",
query: { rowKey: 1 },
});
this.$router.push({ name: 'user', params: { id: 1 }})
优点
1. 更加灵活: 动态路由可以根据用户请求的不同参数,动态地生成对应的路由信息,从而实现更加灵活的路由匹配。
2. 优化代码结构: 动态路由可以让代码结构更加简洁明了,避免手书写多个类似的路由配置。
3. 方便管理路由: 动态路由可以通过数据库或配置文件等方式管理路由信息,从而方便进行批量修改和管理。
缺点
1. 不易于维护: 动态路由的信息存储在外部,需要进行额外的维护,如果管理不当容易出现问题。
2. 安全性问题: 动态路由的参数可能受到攻击,需要进行安全防范。
3. 额外的性能开销: 动态路由需要在路由匹配时动态生成路由信息,可能会造成额外的性能开销,但对于大多数应用来说,这种开销是可以接受的。
说到这里理解动态路由是干什么的了吧,那query和params传参又有什么区别呢???
区别
1、query刷新页面时参数不会消失(拼接到地址后),而params刷新页面时参数会消失;
2、query传的参数会显示在url地址栏中,而params传参不会显示在地址栏中;所以params传参安全性高于query。