2.5.1 基本使用
#1. 安装路由模块
npm install vue-router --save
#2.login.vue
<template>
<div>
<h1>这是登录组件,使用 .vue 文件定义出来的 --- {{msg}}</h1>
<button @click="show">点我</button>
</div>
</template>
<script>
export default {
data() {
// 注意:组件中的 data 必须是 function
return {
msg: "123321"
};
},
methods: {
show() {
console.log("调用了 login.vue 中的 show 方法");
}
}
};
</script>
<style>
</style>
#3.register.vue
<template>
<div>
<h1>这是注册组件</h1>
</div>
</template>
#4.main.js
import Vue from 'vue'
//1.导入VueRouter并且安装
import VueRouter from 'vue-router'
Vue.use(VueRouter)
//2.导入组件
import login from './login.vue'
import register from './register.vue'
//3.创建路由对象
var router = new VueRouter({
routes: [
{ path: '/', redirect: '/login' },
{ path: '/login', component: login },
{ path: '/register', component: register }
]
});
var vm = new Vue({
el: '#app',
data: {
msg: '123'
},
//4.挂载路由
router:router
})
#5.index.html
<div id="app">
<router-link to="/login">登陆</router-link>
<router-link to="/register">注册</router-link>
<router-view></router-view>
</div>
#6.webpack.config.js参照之前的配置
2.5.2 vue-router和render结合使用
# 在上面案例的基础上
#1.新增App.vue
<template>
<div>
<h1>账户组件</h1>
<!--组件中的路由-->
<router-link to="/login">登陆</router-link>
<router-link to="/register">注册</router-link>
<router-view></router-view>
</div>
</template>
#2.main.js
import app from './App.vue'
var vm = new Vue({
el: '#app',
data: {
msg: '123'
},
//渲染组件替换el
render:e=>e(app),
router:router
})
#3.index.html
<div id="app">
</div>
2.5.3 路由嵌套
# 在上面案例的基础上
#1. 新建subcom/findpwd.vue
<template>
<div>
<h1>找回密码</h1>
</div>
</template>
#2. 新建subcom/thirdpartlogin.vue
<template>
<div>
<h1>微信登陆</h1>
</div>
</template>
#3.修改login.vue
<template>
<div>
<h1>这是登录组件,使用 .vue 文件定义出来的 --- {{msg}}</h1>
<button @click="show">点我</button>
<router-link to="/login/findpwd">找回密码</router-link>
<router-link to="/login/thirdpartlogin">第三方登陆</router-link>
<router-view></router-view>
</div>
</template>
<script>
export default {
data() {
// 注意:组件中的 data 必须是 function
return {
msg: "123321"
};
},
methods: {
show() {
console.log("调用了 login.vue 中的 show 方法");
}
}
};
</script>
#4.在main.js中配置子路由
var router = new VueRouter({
routes: [
{ path: '/', redirect: '/login' },
{ path: '/login',
component: login,
children:[
{path:'findpwd',component:findpwd},
{path:'thirdpartlogin',component:thirdpartlogin}
]
},
{ path: '/register', component: register }
]
});