力软vue前端开发:使用params跳转传参404问题解决

问题描述

this.$router.push({ name: 'page', query: { id: '001' } }) // 根据路由名称 + query 的方式跳转传参

使用query传参时,参数会拼接在链接后,点击搜索条件链接参数也还在。用户需要重新进入搜索页面。

所以,使用name+params进行传参。参数不会出现在url路径上面,刷新页面时param里面的数据会消失,类似post传参。

this.$router.push({ name: 'page', params: { id: '001' } })  // 根据路由名称 + params 的方式跳转传参

但是在力软的默认路由中没有给每个页面的name赋值。所有无法获取要跳转页面的name值。如下:

const requireComponent = require.context('../views', true, /i\.js$/)
requireComponent.keys().map(fileName => {
    const nameList = fileName.split('/')
    if (nameList.length == 3 && nameList[2] == 'i.js') {
        const name = nameList[1]
        pageViews.push({ name: '', path: `/${module.code}/${name}`, meta: requireComponent(fileName).default })
    }
})

解决方法第一步:

提示:给页面赋上name值:

const requireComponent = require.context('../views', true, /i\.js$/)
requireComponent.keys().map(fileName => {
    const nameList = fileName.split('/')
    if (nameList.length == 3 && nameList[2] == 'i.js') {
        const name = nameList[1]
        pageViews.push({ name: name, path: `/${module.code}/${name}`, meta: requireComponent(fileName).default })
    }
})

测试:

经测试,点击跳转后直接到了404,无法找到页面

 解决方法第二步:

经过调试,发现require.context('../views', true, /i\.js$/)获取到的目录名称均为首字母大写,但在后台菜单管理配置成了小写。所以匹配不到。于是修改了菜单上的路径(要和文件夹名称保持一致)。

 

测试:

能正常跳转和传参。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ougexingfuba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值