Vue方向:Vue-router路由传参

1、前言

        vue-router的路由跳转时传递参数有两种方式:

            1.  一种是路由参数,通过定义动态路由传递参数

            2.  另一种是通过query来传递参数

        再者,已知的路由跳转有两大类:

            一类是<router-link>组件的to跳转

            二是通过编程式导航,通过js命令进行跳转

        那么,两种传参方式,两种跳转方式就会有四种搭配写法


2、动态路由传参

        动态路由传参就是通过params进行传参

        动态路由传参说明:

        1.  动态路由params参数的路由定义格式 /router/:id

        2.  在跳转路由时 id 的部分是动态变化的,例如:/router/1,传递的数据就是 1


3、通过<router-link>组件的to属性传参


路由配置代码
Author组件获取params传参

        但是在跳转路由的时候就有不一样的地方,通过<router-link>组件跳转时,可以使用或不使用动态绑定to属性

3.1.  <router-link>组件不使用动态绑定to属性

代码

3.2.  <router-link>使用动态绑定 to 属性

代码


4、通过命名路由跳转

        在动态绑定 to 属性时,也可以通过命令路由的跳转方式

代码


5、通过编程式导航传参

        编程式路由导航传参就是通过在方法中,添加点击事件加入参数,利用 this.$router.push()或this.$router.replace()去跳转页面。

代码

5.1  通过命名路由跳转

代码

        其实,params传递的参数是有限的,通常来说就是一个字符串或者一串数字,但是如果希望传输的数据更多呢?那么就要用到query传参的方式去传递数据了


6、query传参

query传递数据的方式:首先query方式传递数据,路由的配置就是普通路由配置/router,如果有其他特殊情况另说,传递参数的方式,跳转路由时动态绑定的对象中使用 query 的key作为传递方式。

6.1、开发需求示例

        需求分析:当我们点击不同的作者,要将作者的姓名,以及不同作者的不同作品传递到组件中,这样就用到了路由传参

        因测试的结果不便用图片形式展示,因此暂时使用的是一个gif录屏软件录制的

测试结果

6.2  标签跳转的方式

        此时需注意,如果使用在<router-link>组件进行路由跳转时传递query参数,那么to属性只能通过动态绑定的方式传递。

代码

        此时动态绑定的to属性中,name是通过命名路由进行跳转的,params是在跳转路由时,处理导航文字,因为只有匹配成功的导航才会有router-link-active类名,query就是我们在跳转路由时,需要向组件中传递的所有数据。

6.3  编程路由跳转

代码
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容