学习vue第二十三节,路由传参方法

 

<!DOCTYPE html>
<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>Document</title>
  <script src="lib/vue-2.4.0.js"></script>
  <!-- 1. 安装 vue-router 路由模块 -->
  <script src="lib/vue-router-3.0.1.js"></script>
  <style>
      
      /* 
      当展示哪个路由,router-link标签就会加上两个class
       router-link-exact-active router-link-active
       */
    .router-link-active,
    .myactive {
      background-color: #1B6D85;
    }

    .v-enter,
    .v-leave-to {
      opacity: 0;
      transform: translateX(140px);
    }

    .v-enter-active,
    .v-leave-active {
      transition: all 0.5s ease;
    }
    .a{
        width: 200px;
        height: 200px;
        background-color: red;
    }
    .b{
        width: 200px;
        height: 200px;
        background-color: green;
    }
  </style>
</head>

<body>
  <div id="app">
      <!-- 路由可以自己传参数 -->
        <router-link to="/login?id=10&name='张三'" tag="span">login</router-link>
        <router-link to="/register" tag="span">register</router-link>
        
         <transition mode="out-in">
             <router-view></router-view>
         </transition>
        
        
  </div>
        

  <script>
      // 组件模板对象
    var login={
        template:"<div class='a'>login---id-{{$route.query.id}}--{{$route.query.name}}</div>",
        created(){
            // 通过$route.query方法得到参数
            console.log(this.$route.query.id)
        }
        
    }
   var register={
       template:"<div class='b'>register</div>"
   }
   
   // 2.创建路由对象。当导入路由的包时,就有了一个路由的构造函数  
   
   var rout=new VueRouter({
       routes:[
           {path:'/',redirect:'/login'}, //redirect 重定向,是根路径是跳转到某个url地址上
           {path:'/login',component:login},
           {path:'/register',component:register}
       ],
       linkActiveClass:'myactive'
       
   })
    // 创建 Vue 实例,得到 ViewModel
    var vm = new Vue({
      el: '#app',
      data: {},
      methods: {},
      router: rout // 将路由规则对象,注册到 vm 实例上,用来监听 URL 地址的变化,然后展示对应的组件
    });
  </script>
</body>

</html>

传参二

<!DOCTYPE html>
<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>Document</title>
  <script src="lib/vue-2.4.0.js"></script>
  <!-- 1. 安装 vue-router 路由模块 -->
  <script src="lib/vue-router-3.0.1.js"></script>
  <style>
      
      /* 
      当展示哪个路由,router-link标签就会加上两个class
       router-link-exact-active router-link-active
       */
    .router-link-active,
    .myactive {
      background-color: #1B6D85;
    }

    .v-enter,
    .v-leave-to {
      opacity: 0;
      transform: translateX(140px);
    }

    .v-enter-active,
    .v-leave-active {
      transition: all 0.5s ease;
    }
    .a{
        width: 200px;
        height: 200px;
        background-color: red;
    }
    .b{
        width: 200px;
        height: 200px;
        background-color: green;
    }
  </style>
</head>

<body>
  <div id="app">
      <!-- 路由可以自己传参数 -->
        <router-link to="/login/12/'张三'" tag="span">login</router-link>
        <router-link to="/register" tag="span">register</router-link>
        
         <transition mode="out-in">
             <router-view></router-view>
         </transition>
        
        
  </div>
        

  <script>
      // 组件模板对象
    var login={
        template:"<div class='a'>login---id-{{$route.params.id}}name--{{$route.params.name}}</div>",
        created(){
            // 通过$route.params 方法得到参数
            console.log(this.$route.params.id)
        }
        
    }
   var register={
       template:"<div class='b'>register</div>"
   }
   
   // 2.创建路由对象。当导入路由的包时,就有了一个路由的构造函数  
   
   var rout=new VueRouter({
       routes:[
           {path:'/',redirect:'/login'}, 
           {path:'/login/:id/:name',component:login},//路由匹配规则定义变量
           {path:'/register',component:register}
       ],
       linkActiveClass:'myactive'
       
   })
    // 创建 Vue 实例,得到 ViewModel
    var vm = new Vue({
      el: '#app',
      data: {},
      methods: {},
      router: rout // 将路由规则对象,注册到 vm 实例上,用来监听 URL 地址的变化,然后展示对应的组件
    });
  </script>
</body>

</html>

 

posted @ 2020-06-10 20:43  三线码工  阅读(191)  评论(0编辑  收藏  举报