在嵌套路由中,父路由向子路由传值除了query外,还有params,params传值有两种情况,一种是值在url中显示,另一种是值不显示在url中。

1、显示在url中
index.html

<div id="app">
  <!-- router-view 路由出口, 路由匹配到的组件将渲染在这里 -->
  <router-view></router-view>
</div>

main.js params传值是通过:[参数值] 如path:"/home/game/:num"

import Vue from 'vue'
  import VueRouter from 'vue-router'
  Vue.use(VueRouter)
  //引入两个组件
  import home from "./home.vue"
  import game from "./game.vue"
  //定义路由
  const routes = [
    { path: "/", redirect: "/home" },//重定向
    {
      path: "/home", component: home,
      children: [
        { path: "/home/game/:num", component: game }
      ]
    }
  ]
  //创建路由实例
  const router = new VueRouter({routes})   new Vue({
    el: '#app',
    data: {
      id:123,
    },
    methods: {
    },
    router
  })

home.vue 在home中具体的值就跟在路径后面,如 “/home/game/123”,也就是说传递给子路由的值就是 123

<template>
    <div>
      <h3>首页</h3>
      <router-link to="/home/game/123">
        <button>显示</button>
      </router-link>
      <router-view></router-view>
    </div>
  </template>

game.vue 在子路由中,通过 this.$route.params.参数名来接受传递过来的值

<template>
  <h3>王者荣耀{{ this.$route.params.num }}</h3>
</template>

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 }
      ]
    }
  ]

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

<template>
    <div>
      <h3>首页</h3>
      <router-link :to="{ name:'game1', params: {num: 123} }">
        <button>显示</button>
      </router-link>
      <router-view></router-view>
    </div>
  </template>

原文地址:http://www.jb51.net/article/114436.htm

vue嵌套路由--params传递参数的更多相关文章

  1. vue嵌套路由-query传递参数(三)

    在嵌套路由中我们经常会遇到父路由向子路由里面传递参数,传递参数有两种方法,通过 query 或者 params index.html <div id="app"> &l ...

  2. Vue通过路由 query传递参数

    父组件通过query来传递num参数为1,相当与在 url 地址后面拼接参数 <template> <div> <h3>首页</h3> <rout ...

  3. vue嵌套路由 && 404重定向

    第一部分: vue嵌套路由 嵌套路由是什么? 嵌套路由就是在一个被路由过来的页面下可以继续使用路由,嵌套也就是路由中的路由的意思.  比如在vue中,我们如果不使用嵌套路由,那么只有一个<rou ...

  4. vue嵌套路由与404重定向实现方法分析

    第一部分: vue嵌套路由 嵌套路由是什么? 嵌套路由就是在一个被路由过来的页面下可以继续使用路由,嵌套也就是路由中的路由的意思. 比如在vue中,我们如果不使用嵌套路由,那么只有一个<rout ...

  5. Vue 给子组件传递参数

    Vue 给子组件传递参数 首先看个例子吧 原文 html <div class="container" id="app"> <div clas ...

  6. Vue 嵌套路由使用总结

    Vue 嵌套路由使用总结   by:授客 QQ:1033553122   开发环境   Win 10   node-v10.15.3-x64.msi 下载地址: https://nodejs.org/ ...

  7. vue设置路由跳转参数,以及接收参数

    最近做Vue项目,遇到了一个路由跳转问题:首页要跳转到项目页指定的Tab选项卡项,一开始总是跳到默认项.解决方法如下: 在跳转链接处设置了路由跳转参数,如下: <router-link  :to ...

  8. vue嵌套路由总结

    嵌套路由就是在一个被路由过来的页面下可以继续使用路由,嵌套也就是路由中的路由的意思. 比如在vue中,我们如果不使用嵌套路由,那么只有一个<router-view>,但是如果使用,那么在一 ...

  9. Angular2入门系列教程5-路由(一)-使用简单的路由并在在路由中传递参数

    上一篇:Angular2入门系列教程-服务 上一篇文章我们将Angular2的数据服务分离出来,学习了Angular2的依赖注入,这篇文章我们将要学习Angualr2的路由 为了编写样式方便,我们这篇 ...

随机推荐

  1. HDU 5649 DZY Loves Sorting(二分答案+线段树/线段树合并+线段树分割)

    题意 一个 \(1\) 到 \(n\) 的全排列,\(m\) 种操作,每次将一段区间 \([l,r]\) 按升序或降序排列,求 \(m\) 次操作后的第 \(k\) 位. \(1 \leq n \le ...

  2. 使用vue做表单验证

    <template> <Form ref="formInline" :model="formInline" :rules="rule ...

  3. Docker Engine SDKs and API 的开发1

    Develop with Docker Engine SDKs and API Docker provides an API for interacting with the Docker daemo ...

  4. 【NOIP 2016】Day2 T3 愤怒的小鸟

    Problem Description \(Kiana\) 最近沉迷于一款神奇的游戏无法自拔. 简单来说,这款游戏是在一个平面上进行的. 有一架弹弓位于 \((0,0)\) 处,每次 \(Kiana\ ...

  5. python学习 day15打卡 初识面向对象

    本节主要内容: 1.面向对象和面向过程 2.面向对象如何编写 3.面向对象和面向过程的对比 4.面向对象的三大特征 一.面向对象和面向过程(重点理解) 1.面向过程:一切以事物的流程为核心.核心是&q ...

  6. _itemmod_extra_equipments_enable

    如果这个表是空的 所有装备都可以当成双甲  如果这个表里有配置物品 那么只有表里的 才可以当成双甲 表说明 `comment` 备注 `entry` 物品ID

  7. activity 运行流程

    图1 图2 图3 图四

  8. JsonAutoDetect注解找不到错误

    RedisConfig类代码: package com.neo.SpringBoot.config; import java.lang.reflect.Method; import org.sprin ...

  9. vue模板编译

    Vue 的模板编译是在 $mount 的过程中进行的,在 $mount 的时候执行了 compile 方法来将 template 里的内容转换成真正的 HTML 代码. complie 最终生成 re ...

  10. JS异步函数 返回值

    1.  js 异步的几种情况 : 1.1 异步操作由浏览器内核的 webcore 来执行: onclick 由浏览器内核的 DOM Binding 模块来处理,当事件触发的时候,回调函数会立即添加到任 ...