params形式

http://192.168.1.100:8080/#/infoDetailed/231

 //定义路由
{
path: "/infoDetailed/:newsId",
name: "InfoDetailed",
component: () => import("@/views/info/InfoDetailed.vue")
}, //a组件传参
 handleEdit(index, row) {
  
      this.$router.push({ name: "InfoDetailed", params: { newsId: row.id } });
  },
 
//InfoDetailed.vue组件接收参数
 created() {
    this.newsId = this.$route.params.newsId;
 }
 

params传参配置props属性

在组件中使用 $route 会使之与其对应路由形成高度耦合,从而使组件只能在某些特定的 URL 上使用,限制了其灵活性。

使用 props 将组件和路由解耦:也就是说配置了props就不用使用this.$route.params.xxx了.直接挂载到组件的props属性上。方便其他使用

props搭配query传参不会生效。

 {
path: "/infoDetailed/:newsId",
name: "InfoDetailed",
component: () => import("@/views/info/InfoDetailed.vue"),
props: true
}, handleDetailEdit(index, row) {
let id = row.id;
this.$router.push({
name: "InfoDetailed",
params: { newsId: id }
});
},

//InfoDetailed.vue
props: {
newsId: {
type:String,
required:true
}
},

query传参

http://192.168.1.100:8080/#/infoDetailed?newsId=230

 {
path: "/infoDetailed",
name: "InfoDetailed",
component: () => import("@/views/info/InfoDetailed.vue")
} handleEdit(index, row) {
console.log(index, row);
this.$router.push({ name: "InfoDetailed", query: { newsId: row.id } });
}, //InfoDetailed.vue created() {
this.newsId = this.$route.query.newsId
}

params参数丢失问题

以name自定义属性举例子:

不要在params中随便加路由path中未定义的动态路由参数。

另外即使加了name属性,跳转到新的页面url地址http://192.168.1.100:8080/#/infoDetailed/231 也只会携带上newsId的参数信息,不会带上name的数据信息。

 handleEdit(index, row) {
console.log(index, row);
// params参数丢失问题:name在router.js路由path中并没有配置, path: "/infoDetailed/:newsId",
//自己强行加进去,跳转到新页面,第一次会存在,但是一旦刷新,name参数直接丢失。而newsId无此问题。
this.$router.push({ name: "InfoDetailed", params: { newsId: row.id,name:'zs' } });
},

18 vue 动态路由传参的更多相关文章

  1. vue中路由传参的方式

    一.params的类型: 配置路由格式: /router/:id 传递的方式: 在path后面跟上对应的值 传递后形成的路径: /router/123, /router/abc 通过:to字符串拼接的 ...

  2. vue里面路由传参的三种方式

    1.方式一 通过query的方式也就是?的方式路径会显示传递的参数 HTML的方式<router-link :to="{name:xxx,query:{page:1,code:8899 ...

  3. vue之路由传参三种基本方式

    现有如下场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取数据. 父组件中: <li v-for="article in articles" @click= ...

  4. vue父子组件路由传参的方式

    一.get方式(url传参): 1.动态路由传参: 父组件: selectItem (item) { this.$router.push({ path: `/recommend/${item.id}` ...

  5. vue动态路由配置,vue路由传参

    动态路由: 当我们很多个页面或者组件都要被很多次重复利用的时候,我们的路由都指向同一个组件,这时候从不同组件进入一个"共用"的组件,并且还要传参数,渲染不同的数据 这就要用到动态路 ...

  6. webpack+vue 组件间传参(单一事件中心管理组件通信--$root),如果有路由的话会失效

    先给一个例子: <body> <div id="box"> <com-a></com-a> <com-b></co ...

  7. vue 路由传参

      mode:路由的形式 用的哪种路由 1.hash 路由 会带#号的哈希值 默认是hash路由   2.history路由 不会带#的     单页面开发首屏加载慢怎么解决?单页面开发首屏加载白屏怎 ...

  8. vue——动态路由以及地址传参

    动态路由: 当我们很多个页面或者组件都要被很多次重复利用的时候,我们的路由都指向同一个组件,这时候从不同组件进入一个”共用”的组件,并且还要传参数,渲染不同的数据 这就要用到动态路由跟路由传参了! 1 ...

  9. vue链接传参与路由传参

    1.链接传参: 例如:链接是:http://localhost:3333/#/index?id=001 我们要获取参数:console.log(this.$route.query.id):即可 2.路 ...

随机推荐

  1. 朴素贝叶斯分类器基本代码 && n折交叉优化 2

    这个代码基于上一个代码 不同的是:读取了txt文件,改变了min_ft与max_ft的参数 import re import pandas as pd import warnings import n ...

  2. JS 获取验证码按钮改变案例

    HTML代码 <div class="box"> <label for="">手机号</label> <input t ...

  3. Dubbo系列之 (一)SPI扩展

    一.基础铺垫 1.@SPI .@Activate. @Adaptive a.对于 @SPI,Dubbo默认的特性扩展接口,都必须打上这个@SPI,标识这是个Dubbo扩展点.如果自己需要新增dubbo ...

  4. 论文结果图:matplotlib和seaborn实现

    在论文中,可视化结果往往很重要,毕竟文字太抽象,需要图片向审稿人直观的展现出我们的结果.我也写了俩篇论文和一篇专利的申请,其中也有一些画图的程序,因此记录,防止以后忘了.由于篇幅原因,文章就不贴代码, ...

  5. UIAutomator环境Android8.0 环境异常解决

    个人PC环境 ANDROID_HOME:F:\1Study\Andriod\51zxw_2018-0102\Sdk ANT_HOME:D:\ant\apache-ant-1.10.5\ CLASSPA ...

  6. 学习Hibernate5这一篇就够了

    配套资料,免费下载 链接:https://pan.baidu.com/s/1i_RXtOyN1e4MMph6V7ZF-g 提取码:8dw6 复制这段内容后打开百度网盘手机App,操作更方便哦 第一章 ...

  7. 从零搭建Spring Boot脚手架(5):整合 Mybatis Plus

    1. 前言 在上一文中我根据Mybatis中Mapper的生命周期手动实现了一个简单的通用Mapper功能,但是遗憾的是它缺乏实际生产的检验.因此我选择更加成熟的一个Mybatis开发增强包.它就是已 ...

  8. C#LeetCode刷题之#48-旋转图像(Rotate Image)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3668 访问. 给定一个 n × n 的二维矩阵表示一个图像. 将 ...

  9. C#LeetCode刷题之#268-缺失数字(Missing Number)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4056 访问. 给定一个包含 0, 1, 2, ..., n 中  ...

  10. vue scss 样式穿透

    使用2个style的方式不够优雅,可以使用下面方式做样式穿透 .normal-field /deep/ .el-form-item { margin-bottom: 0px; } .normal-fi ...