解读Vue-Router 使用 prams 路由传参失效

 更新时间:2023年08月14日 14:54:45   作者:谢尔登  
这篇文章主要介绍了Vue-Router使用prams路由传参失效,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

报错信息: [Vue Router warn]: Discarded invalid param(s) “name”, “price”, “id” when navigating.

在这里插入图片描述

list.json

{
  "data": [
    {
      "name": "面",
      "price":300,
      "id": 1
    },
    {
      "name": "水",
      "price":400,
      "id": 2
    },
    {
      "name": "菜",
      "price":500,
      "id": 3
    }
  ]
}

login.vue

<template>
  <h1>
    我是列表页面
  </h1>
  <table cellpadding="0" class="table" border="1">
    <thead>
      <tr>
        <th>商品</th>
        <th>价格</th>
        <th>操作</th>
      </tr>
    </thead>
    <tbody>
      <tr :key="item.id" v-for="item in data">
        <th>{{ item.name }}</th>
        <th>{{ item.price }}</th>
        <th>
          <button @click="toDetail(item)">详情</button>
        </th>
      </tr>
    </tbody>
  </table>
</template>
<script setup lang="ts">
import { data } from './list.json'
import { useRouter } from 'vue-router';
const router = useRouter()
type Item = {
  name: string;
  price: number;
  id: number;
}
const toDetail = (item: Item) => {
  router.push({
    // name 对应 router 的 name
    name: 'Reg',
    // 不会展示在URL上,存在于内存里
    params: item
  })
}
</script>
<style scoped>
.table {
  width: 400px;
}
</style>

reg.vue

<template>
  <h1>
    我是列表页面
  </h1>
  <button @click="router.back()">返回</button>
  <div style="font-size: 20px;">
    品牌:{{ route.params.name }}
  </div>
  <div style="font-size: 20px;">
    价格:{{ route.params.price }}
  </div>
  <div style="font-size: 20px;">
    id: {{ route.params.id }}
  </div>
</template>
<script setup lang="ts">
import { useRoute } from 'vue-router';
import { useRouter } from 'vue-router';
const router = useRouter();
const route = useRoute();
</script>
<style scoped>
.reg {
  background-color: green;
  height: 400px;
  width: 400px;
  font-size: 20px;
  color: white;
}
</style>

App.vue

<template>
  <h1>hello world</h1>
  <hr>
  <router-view></router-view>
</template>
<script setup lang="ts">
import { useRouter } from 'vue-router';
const router = useRouter();
</script>
<style scoped></style>

在这里插入图片描述

此时得到的 params 数据为空

然后查看更新日志:点击查看更新日志

所以,这种使用 prams 路由传参的方法失效。

到此这篇关于Vue-Router 使用 prams 路由传参失效的文章就介绍到这了,更多相关Vue Router 使用 prams 路由传参内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决vue路由发生了跳转但是界面没有任何反应问题

    解决vue路由发生了跳转但是界面没有任何反应问题

    这篇文章主要介绍了解决vue路由发生了跳转但是界面没有任何反应问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • vue.js+element-ui的基础表单实例代码

    vue.js+element-ui的基础表单实例代码

    这篇文章主要介绍了vue.js+element-ui的基础表单实例代码,技术栈即html+vue.js+element-ui,而使用它们的方法也很简单,引入对应的js和css文件即可,需要的朋友可以参考下
    2024-03-03
  • Vue quill-editor 编辑器使用及自定义toobar示例详解

    Vue quill-editor 编辑器使用及自定义toobar示例详解

    这篇文章主要介绍了Vue quill-editor编辑器使用及自定义toobar示例详解,这里讲解编辑器quil-editor的知识结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-07-07
  • vue使用Split封装通用拖拽滑动分隔面板组件

    vue使用Split封装通用拖拽滑动分隔面板组件

    这篇文章主要介绍了vue使用Split封装通用拖拽滑动分隔面板组件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 基于Vue开发数字输入框组件

    基于Vue开发数字输入框组件

    本文通过实例代码给大家介绍了基于Vue开发数字输入框组件,需要的朋友可以参考下
    2017-12-12
  • Vue 中文本内容超出规定行数后展开收起的处理的实现方法

    Vue 中文本内容超出规定行数后展开收起的处理的实现方法

    这篇文章主要介绍了Vue 中文本内容超出规定行数后展开收起的处理的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Vue+Element switch组件的使用示例代码详解

    Vue+Element switch组件的使用示例代码详解

    这篇文章主要介绍了Vue+Element switch组件的使用,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • vue中三种不同插槽使用小结

    vue中三种不同插槽使用小结

    本文主要介绍了vue中三种不同插槽使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • vue环境如何实现div focus blur焦点事件

    vue环境如何实现div focus blur焦点事件

    这篇文章主要介绍了vue环境如何实现div focus blur焦点事件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • vue2项目中如何使用clipboard复制插件

    vue2项目中如何使用clipboard复制插件

    这篇文章主要介绍了vue2项目中如何使用clipboard复制插件方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07

最新评论