老师能讲解一下这个params跟query

来源:1-7 Vue项目详情页 - 动态获取详情页面数据

小杨同学呀

2020-10-10 22:57:44

我百度查询到关于params 都是写在router里面的index.js中的,跟课件的这个还不同

写回答

1回答

好帮手慕慕子

2020-10-11

同学你好,params和query是vue中使用路由的两种传参方法,写在router/index.js文件里的代码是定义路由规则的。

视频中老师是直接使用router-link标签的to属性实现了路由跳转,如下所示:

在router/index.js中定义路由规则

http://img.mukewang.com/climg/5f82799609723c9d09330382.jpg

在vue文件中设置跳转

http://img.mukewang.com/climg/5f827976099ed5f807210427.jpg

而当前小节视频中老师提到的params并不是路由跳转时传递的参数,而是发送axios请求是设置的参数。可以参考下图理解

http://img.mukewang.com/climg/5f827a88095b881c11060285.jpg

两者的区别可以参考如下解析

  1. params方式传递参数,需要先设置动态路由,如下

    http://img.mukewang.com/climg/5f8281de09db1e4704700152.jpg

    进行路由跳转时,与组件名name属性配合使用,如下:

    http://img.mukewang.com/climg/5f827efa094bc88006400320.jpg

    获取时,使用this.$route.params.id

    http://img.mukewang.com/climg/5f827bc90900448612110248.jpg

    测试结果

    http://img.mukewang.com/climg/5f827f2a095364c713080504.jpg

  2. query方式传递参数,不需要设置动态路由

    http://img.mukewang.com/climg/5f828205090fca0403830153.jpg

    路由跳转时,与path属性配合使用,如下:

    http://img.mukewang.com/climg/5f82821e0996c00306290131.jpg

    获取时,使用this.$route.query.id

    http://img.mukewang.com/climg/5f8282410921600008150147.jpg

    测试结果如下:

    http://img.mukewang.com/climg/5f82828209bda0a112600644.jpg

同学可以结合示例测试理解下,祝学习愉快~

0

0 学习 · 10739 问题

查看课程