{ path: '/detail/:id/', name: 'detail', component: detail, meta: { title: '详情' } }
获取参数
let id = this.$route.params.id
- 1
备注:
1、参数名需要保持一致
2、如果路由中没有传参(http://192.168.1.12:8080/#/detail),会报错,页面无法显示,正常页面为 http://192.168.1.12:8080/#/detail/234
如果有的参数可传可不传,可以使用?传参
例如:http://192.168.1.12:8080/#/detail/?id=123
获取的时候:
let id = this.$route.query.id
这样即使取不到参数,页面也不会报错
使用js获取页面参数
如果是在普通js文件中,想获取url后面的参数,可以新建一个工具类,utils.js:
/* eslint-disable */
export default{
getUrlKey: function (name) {
return decodeURIComponent((new RegExp('[?|&]' + name + '=' + '([^&;]+?)(&|#|;|$)').exec(location.href) || [, ""])[1].replace(/\+/g, '%20')) || null
}
}
在其他需要获取参数的js中引入
import Vue from 'vue'
import utils from '../../assets/scripts/utils'
// Vue.prototype.$utils = utils // main.js中全局引入
let id = utils.getUrlKey('id')
console.log()
url为http://192.168.1.12:8080/#/detail/?id=123时,可以得到id为123
本文深入讲解Vue中如何通过路由获取参数,包括path和query方式的区别,以及在不同场景下参数的正确获取方法,同时提供了在js文件中获取URL参数的实用工具类。
760

被折叠的 条评论
为什么被折叠?



