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 <!--1.导入Vue的包-->
10 <script src=" https://cdn.jsdelivr.net/npm/vue"></script>
11 <!-- 安装 vue-router 路由模块 -->
12 <script src="../lib/vue-router-3.0.6.js"></script>
13 </head>
14
15 <body>
16 <div id="app">
17 <!-- <a href="#/login">登录</a>
18 <a href="#/register">注册</a> -->
19
20 <!-- router-link 默认渲染为一个a标签 -->
21 <router-link to="/login" tag="span">登录</router-link>
22 <router-link to="/register">注册</router-link>
23
24 <!-- 这是 vue-router 提供的元素,专门用来 当作占位符的,将来,路由规则,匹配到的组件,就会展示到这个 router-view中去 -->
25 <!-- 所以:我们可以把router-view 认为是一个占位符 -->
26 <router-view></router-view>
27 </div>
28
29 <script>
30 //组件的模板对象
31 var login={
32 template:'<h1>登录组件</h1>'
33 }
34
35 var register={
36 template:'<h1>注册组件</h1>'
37 }
38
39 /*Vue.component('login',{
40 template: '<h1>登录组件</h1>'
41 })*/
42
43 //2.创建一个路由对象,当导入vue-router 包治好,在window全局对象中,就有了一个路由的构造函数,叫做VueRouter
44 //在 new 路由对象的时候,可以为 构造函数,传递一个配合对象
45 var routerObj=new VueRouter({
46 //route //这个配置对象中的route表示 【路由匹配规则】 的意思
47 routes:[//路由匹配规则
48 //每个路由规则,则都是一个对象,这个规则对象,身上,有两个必须的属性:
49 // 属性1 是path, 表示监听 哪个路由链接地址;
50 // 属性2 是component,表示,如果 路由是前面匹配到的path,则展示component属性对应的哪个组件
51 //注意:component 的属性值,必须是一个组件的模板对象,不能是 组件的引用名称;
52 // {path:'/',component:login},
53 {path:'/',redirect:'/login'}, //这里的 redirect 和 Node 中的redirect完全是两码事
54 {path:'/login',component:login},
55 {path:'/register',component:register}
56 ]
57 })
58
59 //创建 Vue 实例,得到 ViewModel
60 var vm = new Vue({
61 el:'#app',
62 data:{
63 msg:''
64 },
65 methods:{},
66 router:routerObj //将路由规则对象,注册到 vm 实例上,用来监听 URL 地址的变化,然后展示对应的组件
67 });
68 </script>
69 </body>
70 </html>