js 解析路由携带的参数

方法1 利用插件qs获取路由参数

// 1.安装qs.js
npm install qs --save
// 2.使用的界面引入
import qs from  'qs'
// 3.封装一个方法获取 第一个参数整个路由,第二个参数某个key
function getParams(strlen,str){
   let c= strlen
   if(c.includes('?')){
      c = c.split('?')[1]
   }
   const obj = qs.parse(c) || {}
   return obj[str] || ''
}
// 4.获取路由的 jiuzhenks
getParams('http://localhost:8080/#/doctorRoom/overallInfo?vstId=456&tabTitle=%E5%91%A8%E5%B0%8F%E8%90%B1&jiuzhenks=123&msStr=DBA', 'jiuzhenks')
// 5.如何获取整个路由参数
qs.parse(xxx) // xxx 为?后携带的参数

方法2 利用正则获取路由参数

// 封装正则获取方法
function getParameters(str){
	return JSON.parse(`{"${decodeURI(str.split("?")[1]).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g, '":"')}"}`)

} 
getParameters('http://localhost:8080/#/doctorRoom/overallInfo?vstId=456&tabTitle=%E5%91%A8%E5%B0%8F%E8%90%B1&jiuzhenks=123&msStr=DBA');

// 获取结果
{
    "vstId": "456",
    "tabTitle": "周小萱",
    "jiuzhenks": "123",
    "msStr": "DBA"
}

原来这么简单!!!!!
so easy

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. Ts中的枚举和元组使用 枚举:枚举是一种包含一组命名的常量的数据结构,枚举中的每个元素都有一个名称和一个对应的值。例如,定义一种颜色枚举: ```typescript enum Color { Red = 1, Green, Blue } let colorName: string = Color[2]; console.log(colorName); // 输出 'Green' ``` 元组:元组是一种数组类型,它指定了数组中每个元素的类型。元组中的每个元素可以是不同类型的。例如,定义一个字符串和一个数字的元组: ```typescript let x: [string, number]; x = ['hello', 10]; // 初始化 console.log(x[0].substring(1)); // 输出 'ello' console.log(x[1].toFixed(2)); // 输出 '10.00' ``` 2. Vue的路由传参 路由传参可以用`params`或`query`,`params`传参会将参数拼接在URL上,而`query`则会将参数以查询参数的方式附加在URL上。 例如,在路由配置中定义一个带参数路由: ```javascript { path: '/user/:id', // 动态路由 component: User, props: true // 将params参数注入到User组件的props中 } ``` 在代码中使用`router-link`传递参数: ```html <router-link :to="{ path: '/user/' + userId }">User</router-link> ``` 或者: ```html <router-link :to="{ name: 'user', params: { id: userId }}">User</router-link> ``` 在`User`组件中通过props接收参数: ```javascript export default { props: ['id'], created() { console.log(this.id); } } ``` 多个参数的话,可以使用对象的方式传递参数: ```html <router-link :to="{ path: '/user', query: { id: userId, name: userName } }">User</router-link> ``` 在`User`组件中通过`$route.query`获取参数: ```javascript export default { created() { console.log(this.$route.query.id); console.log(this.$route.query.name); } } ``` 3. Vue动态路由解析 Vue的动态路由是指路由路径中包含参数路由。例如,上面提到的带参数路由`/user/:id`就是动态路由。 当访问这个路由时,Vue会将参数解析到`$route.params`中。例如,访问`/user/123`,则`$route.params.id`为`123`。 在路由配置中,只需要将`props`设置为`true`,Vue就会自动将路由参数注入到组件的props中,例如: ```javascript { path: '/user/:id', component: User, props: true } ``` 在`User`组件中,可以直接使用`props`来获取参数: ```javascript export default { props: ['id'], created() { console.log(this.id); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值