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

发布时间 - 2026-01-11 01:14:48    点击率:

在嵌套路由中,父路由向子路由传值除了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> 

运行的结果如下图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue  # params  # 参数  # router  # router.params  # 详解Vue路由传参的两种方式query和params  # vue如何通过params和query传值(刷新不丢失)  # vue-router传递参数的几种方式实例详解  # vue踩坑日记之params传递参数问题  # 首页  # 重定向  # 就会  # 在这里  # 只需  # 很简单  # 有两种  # 跟在  # 中就  # 大家多多  # 来给  # 如下图  # 也就是说  # 无所谓  # game  # view  # app  # gt  # query 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 用yum安装MySQLdb模块的步骤方法  Laravel如何构建RESTful API_Laravel标准化API接口开发指南  Laravel如何保护应用免受CSRF攻击?(原理和示例)  C#如何调用原生C++ COM对象详解  Linux系统运维自动化项目教程_Ansible批量管理实战  高性价比服务器租赁——企业级配置与24小时运维服务  魔方云NAT建站如何实现端口转发?  如何快速启动建站代理加盟业务?  Python文本处理实践_日志清洗解析【指导】  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  如何选择PHP开源工具快速搭建网站?  Laravel如何实现API资源集合?(Resource Collection教程)  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  微信公众帐号开发教程之图文消息全攻略  高端网站建设与定制开发一站式解决方案 中企动力  Laravel怎么实现模型属性的自动加密  Laravel怎么上传文件_Laravel图片上传及存储配置  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  5种Android数据存储方式汇总  音乐网站服务器如何优化API响应速度?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel如何实现API版本控制_Laravel API版本化路由设计策略  Laravel如何处理文件上传_Laravel Storage门面实现文件存储与管理  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  如何在阿里云域名上完成建站全流程?  常州企业网站制作公司,全国继续教育网怎么登录?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  文字头像制作网站推荐软件,醒图能自动配文字吗?  Linux系统命令中screen命令详解  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  软银砸40亿美元收购DigitalBridge 强化AI资料中心布局  Laravel如何升级到最新版本?(升级指南和步骤)  Laravel事件监听器怎么写_Laravel Event和Listener使用教程  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel如何记录自定义日志?(Log频道配置)  如何在IIS7中新建站点?详细步骤解析  laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法  C语言设计一个闪闪的圣诞树  齐河建站公司:营销型网站建设与SEO优化双核驱动策略  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧