`

vue router传递参数 params和query

    博客分类:
  • Vue
 
阅读更多
需求:
list.vue页面
是这样子的,我想把itemId传给hotel.vue页面。
点击url会跳转到http://localhost:8080/#/hotel/1001
分为参数显示在url和参数隐藏


1、参数显示在url中
--------------------------------------------------------------------
list.vue 中
<template> 
<div> 
    <h3>首页</h3> 
    <router-link :to="{path:'/hotel', query: {itemId:1001}}">
       <button>显示</button> 
    </router-link> 
   <router-view></router-view> 
</div> 
</template>
url:http://localhost:8080/#/hotel?itemId=1001

hotel.vue 中
this.$route.query.itemId
F5强制刷新下hotel.vue页面,itemId参数依然存在




2、参数不显示在url中,如果在PC端将传递的值显示在url中,这样无形中就存在安全隐患,如果客户不小心修改了url那样就会出错,移动端就无所谓了,如何才能不显示在url中,同样很简单,但是需要给映射的路径起一个别名,通过name来取别名
--------------------------------------------------------------------
同样只需将上面的main.js中的定义路由改为如下样子,在子路由中通过name来给路径其一个game1的别名。
//定义路由 
const routes = [ 
    { path: "/", redirect: "/home" },//重定向 
    { 
        path: "/home", component: home, 
        children: [ 
            { name: "game1", path: "/home/game/", component: game } 
        ] 
    } 


list.vue 中
router-link修改为:to="{ name:'game1', params: {itemId: 1001} }"
params中是要传递的参数,这样传递的参数就不会显示在url中。

<template> 
<div> 
    <h3>首页</h3> 
    <router-link :to="{ name:'game1', params: {itemId: 1001} }"> 
       <button>显示</button> 
    </router-link> 
   <router-view></router-view> 
</div> 
</template>
url:http://localhost:8080/#/hotel

hotel.vue 中
this.$route.params.itemId
可是F5强制刷新下hotel.vue页面,itemId参数就丢失了

分享到:
评论

相关推荐

    vue router使用query和params传参的使用和区别

    本篇文章主要介绍了vue router使用query和params传参的使用和区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    【JavaScript源代码】Vue router传递参数并解决刷新页面参数丢失问题.docx

    在 Vue Router 中,有多种传递参数的方式,包括通过 `params` 和 `query`。这里我们将详细探讨这两种方式以及如何解决刷新页面时参数丢失的问题。 1. **通过 `params` 传递参数** 当我们使用 `params` 传递参数时...

    vue router带参数页面刷新或回退参数消失的解决方法

    传参是前端经常需要用的一个操作,很多场景都会需要用到上个页面的参数,本文将会详细介绍vue router 是如何进行传参的,以及一些小细节问题。有需要的朋友可以做一下参考,喜欢的可以点波赞,或者关注一下,希望...

    浅析vue-router中params和query的区别

    1.引入方式不同 query要用path来引入 this.$router.push({ path: 'test', query: { type: 2, ...query在url中显示参数 http://localhost:8080/detail?type=0&detail=哈哈 params在url中不显示参数 ht

    vue-router入门教程和总结1

    传递参数有两种方式:通过 URL 路径(动态路由参数)或查询参数。动态路由参数通过在路径中定义冒号 `:` 来实现,如 `/linkParams/:name`。在组件内部,可以使用 `this.$route.params` 访问这些参数。查询参数则可以...

    浅谈vue-router2路由参数注意的问题

    1、vue 路由 如果传递 params 定义路由的时候是 /路由名称:id 获取的时候 this.$route.params.id 最后形如 /路由名称/路由参数 传参的时候 params:{ str1:str1, str2:str2 } 2、如果传递query ?id=str…...

    vue router 传参获取不到的解决方式

    在进行Vue.js开发时,经常会遇到使用vue-router进行页面间跳转并传递参数的需求。参数传递方式可以分为query和params两种,它们之间的区别和正确使用方法是确保参数能够正确传递和接收的关键。 首先,让我们来解释...

    详解vue嵌套路由-query传递参数.zip

    "详解vue嵌套路由-query传递参数.zip"这个压缩包显然包含了一个关于如何在Vue Router中使用`query`参数来传递数据的教程。 Vue Router中的`query`参数是URL查询字符串的一部分,通常用于非持久性的、可选的数据传递...

    vue.js this.$router.push获取不到params参数问题

    // 使用query传递参数 this.$router.push({ path: '/container', query: { url: this.func.url }, }); ``` 然后在目标组件中通过`query`获取: ```javascript // 获取query中的url参数 this.$route.query.url ``` ...

    世上最完整的vuerouter配置demo

    13. **路由参数的传递**:在组件之间传递数据,除了常见的props、vuex等,还可以通过`params`和`query`在路由之间传递。 通过这个"世上最完整的vuerouter配置demo",开发者能够全面了解和实践以上所有知识点,从而...

    详解vue嵌套路由-query传递参数

    "详解vue嵌套路由-query传递参数" 在前端开发中,路由机制是不可或缺的一部分,而在 Vue 中,我们可以使用 Vue Router 来实现客户端路由。今天,我们将详细介绍如何在 Vue 嵌套路由中传递参数,特别是使用 query 来...

    vue-router,vue

    在组件中,这些参数可以通过`this.$route.params`和`this.$route.query`访问。 4. **嵌套路由**:Vue Router 支持子路由,这意味着一个路由可以有多个子路由,每个子路由对应一个子组件。这对于构建具有复杂导航...

    使用vue-router在Vue页面之间传递数据的方法

    在使用vue-router进行页面间数据传递时,主要有两种方法:通过URL参数和通过查询参数。 1. 利用URL参数传递数据: URL参数通常用于传递那些需要在多个页面间保持的、且对页面访问具有关键意义的信息,比如用户的...

    浅析vue-router jquery和params传参(接收参数)$router $route的区别

    在使用query和params传递参数时,有一些关键的技术细节需要掌握: - 当使用`this.$router.push`方法导航到不同的URL时,可以传递query参数。接收参数时,可以在目标路由组件的`created`钩子函数中,通过`this.$...

    vuerouter是Vuejs的官方路由器

    Vue Router 是 Vue.js 生态系统中的官方路由管理器,它为 Vue 应用程序提供了强大的导航控制和页面间通信功能。Vue.js 是一个轻量级的前端JavaScript框架,以其组件化、易上手和高性能而受到开发者喜爱。Vue Router ...

Global site tag (gtag.js) - Google Analytics