vue-router4无法接收params参数的问题

原因:

vue-router 在4.1.4版本有一个更新:删除了没有定义在path里的params。
参见release记录:https://github.com/vuejs/router/blob/main/packages/router/CHANGELOG.md

解决方法:

  1. 回退vue-router的版本:在package.json里,将"vue-router": “^4.0.x"改为"vue-router”: “~4.0.x”。
  2. 使用状态管理工具,如vuex、pinia,记录需要传递的数据
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
假设我们有两个页面,分别是 `Home.vue` 和 `Article.vue`,我们需要在 `Home.vue` 页面中点击某个文章链接跳转到 `Article.vue` 页面,并且传递文章的 id 和 title 信息。 在 `Home.vue` 页面中,我们可以这样定义链接: ```html <router-link :to="{ name: 'article', params: { id: 1, title: 'Vue Router' }, query: { category: 'web' } }">查看文章</router-link> ``` 这里我们使用了 `router-link` 组件来创建链接,`to` 属性指定了链接的目标地址,其中: - `name: 'article'` 表示目标页面的路由名称是 `article`,这个名称是在路由配置中定义的; - `params: { id: 1, title: 'Vue Router' }` 表示传递了两个路由参数,一个是 `id`,值为 `1`,另一个是 `title`,值为 `Vue Router`; - `query: { category: 'web' }` 表示传递了一个查询参数,键为 `category`,值为 `web`。 在路由配置中,我们需要定义 `article` 页面的路由规则,并且指定 `id` 和 `title` 作为路由参数: ```javascript const routes = [ { path: '/', name: 'home', component: Home }, { path: '/article/:id/:title', name: 'article', component: Article, props: true } ] ``` 这里我们使用了动态路由参数接收 `id` 和 `title` 的值,`props: true` 表示将路由参数作为组件的 props 传递给目标组件。 在 `Article.vue` 组件中,我们可以这样获取路由参数和查询参数: ```javascript export default { name: 'Article', props: ['id', 'title'], created() { console.log(this.id, this.title) // 输出 1 'Vue Router' console.log(this.$route.query.category) // 输出 'web' } } ``` 这里我们通过 props 接收路由参数,并在 `created` 钩子函数中输出参数的值,同时使用 `$route.query` 获取查询参数的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值