路由导航及传参方式

一、两种导航方式

①:声明式导航
<router-link :to="...">
②:编程式导航
router.push(...)

二、编程式导航参数有两种类型

①:字符串
// 字符串
router.push('home')
②:对象
// 对象
router.push({ path: 'home' })

三、编程式导航的params传参和query传参

①:params传参(有地址栏中显示参数和不显示参数两种)
//浏览器地址栏中显示参数和不显示参数两种情况主要就是看路由配置

//显示参数的配置
{
name: "user",
path: "/user:userId",
component: Detail
}
// 命名的路由
// params相当与发送了一次post请求,请求参数会显示在浏览器地址栏中,并且刷新页面之后参数不会消失
router.push({ name: 'user', params: { userId: '123' }}) //不显示参数的配置
{
name: "user",
path: "/user",
component: Detail
}
// 命名的路由
// params相当与发送了一次post请求,请求参数不会显示在浏览器地址栏中,并且刷新页面之后参数会消失
router.push({ name: 'user', params: { userId: '123' }}) //统一接收参数方式
this.$route.params.userId
②:query传参
// 带查询参数,变成 /register?plan=private
// query相当与发送了一次get请求,请求参数会显示在浏览器地址栏中
router.push({ path: 'register', query: { plan: 'private' }}) //接收参数方式
this.$route.query.plan
③:特别注意
const userId = '123'
router.push({ name: 'user', params: { userId }}) // -> /user/123
router.push({ path: `/user/${userId}` }) // -> /user/123
// 这里的 params 不生效!!
router.push({ path: '/user', params: { userId }}) // -> /user

四、声明式导航的params传参和query传参

规则与编程式导航相同,只是写法不同,简单介绍

//params传参
<router-link :to="{ name: 'user', params: { userId: '123' }}">click to news page</router-link>
//接收参数方式
this.$route.params.userId //query传参
<router-link :to="{ path: 'register', query: { plan: 'private' }}">click to news page</router-link>
//接收参数方式
this.$route.query.plan

Vue Router路由导航及传参方式的更多相关文章

  1. Vue之路由跳转 传参 aixos 和cookie

    一.路由跳转 1.1 项目的初始化 vue create m-proj   >>>创建vue项目 精简vue项目的 views 视图   About(基本是删除的) Home.(可以 ...

  2. vue 利用路由跨页传参

    第一页,点击进入第二页进行传值: <template> <div id="app"> <div><router-link to=" ...

  3. vue具体页面跳转传参方式

    1.写数据,可以使用“.”,”[]”,以及setItems(key,value);3种方式. 例如: localStorage.name = proe;//设置name为" proe &qu ...

  4. 每日技术总结:vue router传参方式,js获取设备高度

    今天貌似没什么问题,23333…… 1.vue router 路由传参的方式 应用情景:从分类页(category.vue)进入商品列表页(list.vue),需要传递商品分类id(catId),商品 ...

  5. $router和$route的区别,路由跳转方式name 、 path 和传参方式params 、query的区别

    一.$router和$route的区别 $router : 是路由操作对象,只写对象$route : 路由信息对象,只读对象 例子://$router操作 路由跳转 this.$router.push ...

  6. vue路由(一个包含重定向、嵌套路由、懒加载的main.js如下)and 路由跳转传参的query和params的异同

    import Vue from 'vue'import VueRouter from 'vue-router'import App from './App'Vue.use(VueRouter)cons ...

  7. vue传参方式

    //query传参,使用name跳转   this.$router.push({       name:'second',       query: {         queryId:'201808 ...

  8. vue param和query两种传参方式

    1.传参方式 query传参方式 this.$router.push({ path: "/home", query: {code:"123"} }) param ...

  9. 前端MVC Vue2学习总结(八)——Vue Router路由、Vuex状态管理、Element-UI

    一.Vue Router路由 二.Vuex状态管理 三.Element-UI Element-UI是饿了么前端团队推出的一款基于Vue.js 2.0 的桌面端UI框架,手机端有对应框架是 Mint U ...

随机推荐

  1. 一个完整的socket recv()案例,包括解决粘包、服务器主动推数据的问题

    前言: 本文是针对socket长连接(涉及到服务器主动推数据),每个包头的拼接算法和长度都不一样,具体的包头小伙伴们问自己公司的开发吧,本文只是提供思路.再啰嗦一句:recv到的包头中数字进行某种运算 ...

  2. 第二章 Vant的v-cell的v-for使用

    遍历加载list数据,类似el-table 一.问题描述 由于VantUI中没有类似于el-table的table组件,看官网的范例,只找到了cell组件有v-for

  3. JS 实现一个 LRU 算法

    LRU 是 Least Recently Used 的缩写,即最近最少使用,是一种常用的页面置换算法,选择内存中最近最久未使用的页面予以淘汰. 可用的 NodeJS 库见node-lru-cache ...

  4. mongo-express 远程代码执行漏洞(CVE-2019-10758)

    影响版本 mongo-express 0.53.0 POST /checkValid HTTP/1.1 Host: 192.168.49.2:8081 Accept-Encoding: gzip, d ...

  5. scrapy 使用crawlspider rule不起作用的解决方案

    一直用的是通用spider,今天刚好想用下CrawlSpider来抓下数据.结果Debug了半天,一直没法进入详情页的解析逻辑.. 爬虫代码是这样的 # -*- coding: utf-8 -*- i ...

  6. ctf每周一练

    buuctf  misc: 你猜我是个啥 下载之后,是一个zip文件,解压,提示不是解压文件 放进HxD中进行分析,发现这是一个png文件,改后缀 打开后,发现是一张二维码,我们尝试用CQR进行扫描, ...

  7. Java面向对象02——回顾方法(定义、调用)及加深

    方法的定义  package oop.demon01; ​ //Demon01 类 public class Demon01 {          //main 方法     public stati ...

  8. WPS函数

    vlookup函数:=VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 官方解释:其逻辑为在某一区间内搜索区间外某一单元格的值, ...

  9. Android Kotlin Jetpack Compose UI框架 完全解析

    前言 Q1的时候公司列了个培训计划,部分人作为讲师要上报培训课题.那时候刚从好几个Android项目里抽离出来,正好看到Jetpack发布了新玩意儿--Compose,我被它的快速实时打包给吸引住了, ...

  10. 利用system generator 生成vivado ip—以低通滤波器举例

    前段时间自学了matlab和vivado联合推出的system generator工具,用来做数字信号处理,十分好用且使开发更便捷,下面举个例子来供大家一起学习下. 首先打开matlab命令行,输入s ...