1.路由跳转问题
//一般路由跳转都会采用push或者replace方法,并通过query进行路由传参:
this.$router.push({
path:"/",
query:{
query
}
})
//query传参有一个问题,就是不能有特殊符号,像百分号%,加号+等,就拿百分号%号为例
this.$router.push({
path:"/",
query:{
query:"{a:100%}"
}
})
//传过去的参数就是 /query=%7Ba%3A100%25%7D
//其实正常传的话是没有问题的,但是一刷新路由参数就会消失,导致解析路由参数的代码报错
解决方案:将百分号替换掉,并进行相应的解析
this.$router.push({
path:"/",
query:{
query:"{a:100\\}"
}
})
2.路由打开新窗口
有时候需要阻止页面刷新,像keep-alive的使用又问题重重,就需要重新打开新窗口,比如页面的打印等
let url = this.$router.resolve({
path: '/hello',
query: {
query
}
})
window.open(url.href);
3.脚手架生成项目打包部署问题
build: {
// Template for index.html
index: path.resolve(__dirname, '../dist/index.html'),
// Paths
assetsRoot: path.resolve(__dirname, '../dist'),
assetsSubDirectory: 'static',
assetsPublicPath: './',//将此处改为相对路径
}
4.vue路由问题
在路由文件里引入的文件不区分大小写
//在components下创建一个Login.vue,并引入
import Login from '@/components/Login'
import Login from '@/components/login'//小写亦可,但是打包部署会报错,还不易察觉