第八章 watch监听 84 watch-监视路由地址的改变

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 
 4   <head>
 5     <meta charset="utf-8">
 6     <meta name="viewport" content="width=device-width,initial-scale=1.0">
 7     <meta http-equiv="X-UA-Compatible"  content="ie=edge">
 8     <title>Document</title>
 9     <!--导入Vue的包-->
10     <script src=" https://cdn.jsdelivr.net/npm/vue"></script>
11     <!-- 1.导入包 -->
12     <script src="../lib/vue-router-3.0.6.js"></script>    
13   </head>
14 
15   <body>
16       <div id="app">
17       <router-link to="/login">登录</router-link>
18       <router-link to="/register">注册</router-link>
19 
20     <!-- 容器 -->
21     <router-view></router-view>
22 
23       </div>
24 
25       <script>
26       //2.创建子组件
27       var login={
28         template:'<h3>这是登录子组件,这个组件是 江小白 开发的。</h3>'
29       }
30 
31       var register={
32         template:'<h3>这是注册子组件,这个组件是 白小江 开发的。</h3>'
33       }
34 
35       //3.创建一个路由对象
36       var router=new VueRouter({
37         routes:[//路由规则数组
38           {path:'/',redirect:'/login'},
39           {path:'/login',component:login},
40           {path:'/register',component:register}
41         ],
42         linkActiveClass:'myactive'  //和激活相关的类
43       })
44 
45       
46           //创建 Vue 实例,得到 ViewModel
47           var vm =  new Vue({
48               el:'#app',
49         data:{ },
50         methods:{ },
51         // router:router
52           router,
53           watch:{
54             //this.$route.path
55             '$route.path':function(newVal,oldVal){
56               // console.log(newVal + ' --- ' +oldVal)
57               if(newVal==='/login'){
58                 console.log('欢迎进入登录页面')
59               }else if(newVal==='/register'){
60                 console.log('欢迎进入注册页面')
61               }
62             }
63           }
64           });
65       </script>
66   </body>
67 </html>
原文地址:https://www.cnblogs.com/songsongblue/p/11011555.html