Vue教程(路由Router-传值)

  本文我们来介绍下在Vue中路由的传参问题

Vue路由传参

  首先我们来准备一个基本路由的页面,如下:


<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Documenttitle>
    <script src="./lib/vue-2.4.0.js">script>
    <script src="./lib/vue-router-3.0.1.js">script>
    
head>
<body>
    <div id="app">

        
        <router-link to="/login" >登录router-link>
        <router-link to="/register">注册router-link>

        <router-view>router-view>
    div>

    <script>
        // 创建两个子组件 模板对象
        var login = {
            template: "

登录模块

"
} var register = { template: "

注册模块

"
} // 创建一个路由对象, 当 导入 vue-router 包之后,在 window 全局对象中, // 就有了一个 路由的构造函数叫做 VueRouter var routerObj = new VueRouter({ // 配置路由规则 routes:[ {path:"/",redirect:"/login"}, {path: "/login" , component: login}, {path: "/register" , component: register} ] }) var vm = new Vue({ el: "#app", data: {}, methods: {}, // 将路由规则对象,注册到 vm 实例上,用来监听 URL 地址的变化, // 然后展示对应的组件 router:routerObj })
script> body> html>

效果如下:

Vue教程(路由Router-传值)_第1张图片

第一种方式

  实现路由传参的第一种方式是在 router-linkto 跳转地址后拼接,如下

Vue教程(路由Router-传值)_第2张图片

那么怎么获取链接地址中拼接的数据呢?往下看:

通过工具调试,我们发现传递的数据实际保存在了 $route.query 对象中,那么我们就可以通过此对象来获取了。

Vue教程(路由Router-传值)_第3张图片
效果如下:

Vue教程(路由Router-传值)_第4张图片

第二种方式

  第二种方式同样是修改 router-link 中的 to 属性中的地址信息,只是写法和前面不一样,如下

Vue教程(路由Router-传值)_第5张图片

这时我们需要在路由规则中特殊设置下对应关系,如下

Vue教程(路由Router-传值)_第6张图片

这时我们在看下传递的数据真实的存储位置

Vue教程(路由Router-传值)_第7张图片

这时我们发现数据存储在了 $route.params 对象中,那么我们获取传递数据的方式为如下:

Vue教程(路由Router-传值)_第8张图片

Vue教程(路由Router-传值)_第9张图片
搞定~

你可能感兴趣的:(Vue资料)