原代码:
this.$router.push({
name: "Task",
params: {
id: item.id,
name: item.name,
projectId: this.projectId,
},
});
要打开新页面窗口:
let routeData = this.$router.resolve({
name: 'Task',
params: {
id: item.id,
name: item.name,
projectId: this.projectId,
toWhere: 'project',
}
});
window.open(routeData.href, '_blank');
跳转带参数,刷新页面,参数会消失
路由配置里面在path里加上 /:id ,多参数就往后加,配置得参数不会刷新页面就消失
import Layout from '@/layout'
const router = {
path: '/',
component: Layout,
redirect: '/project',
children: [
{
path: '/project',
name: 'Project',
component: () => import('@/views/project/projectList'),
meta: { title: 'Project' }
},
{
path: 'project/projectdetail/:id/:toWhere',
name: 'ProjectDetail',
component: () => import('@/views/project/projectDetail'),
},
{
path: 'project/task/:id/:toWhere',
name: 'Task',
component: () => import('@/views/project/task/index'),
},
{
path: 'project/search',
name: 'Search',
component: () => import('@/views/project/task/search'),
},
]
}
export default router
注意:参数不能为空,不然可能会出现刷新页面地址不正确的情况,
另要注意:与其他路由的path不要过度相似,不然会出现识别成其他路由的情况
如下图,将搜索页面识别成任务页面,search识别成id参数