什么是动态路由?params和query有啥区别?

概念

动态路由就是将匹配某种模式下的路由映射到同个组件中,动态路由的本质就是通过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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值