1.安装路由系统
NPM
npm install vue-router
2.在main.js中进入引用
import VueRouter from 'vue-router'
3.创建三个空的组件:
Vcourse.vue
<template>
<div class="course">
课程
</div>
</template> <script>
export default {
name: "vcourse",
data(){
return { }
}
}
</script> <style scoped> </style>
Vmain.vue
<template>
<div class="course">
课程
</div>
</template> <script>
export default {
name: "vcourse",
data(){
return { }
}
}
</script> <style scoped> </style>
Vmarked.vue
<template>
<div class="course">
课程
</div>
</template> <script>
export default {
name: "vcourse",
data(){
return { }
}
}
</script> <style scoped> </style>
4.在main.js中引入这三个组件
//引入的三个组件
//定义路由组件。可以从其他文件 import过来
import Vmain from './components/Vmain'
import Vcourse from './components/Vcourse'
import Vmarked from './components/Vmarked'
5.使用vuerouter.use()方法
Vue.use(VueRouter);
6.定义我们的路由对象:
//定义我们的路由对象,每一个路由映射一个组件
const router = new VueRouter({
mode:'history',
routes:[
{path:'/',component:Vmain},
{path:'/course',component:Vcourse},
{path:'/mark',component:Vmarked} ]
});
7.挂载
//4 创建和挂载实例
new Vue({
el: '#app',
router,
render: h => h(App)
});
8.渲染
<div class="app">
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<ul>
<li><router-link to="/">首页</router-link></li>
</ul>
<ul>
<li><router-link to="/course">课程</router-link><button class="btn-success">88888</button></li>
</ul>
<ul>
<li><router-link to="/mark">编辑器</router-link></li>
</ul> <!--路由出口-->
<!--路由匹配到的组件将渲染在这里-->
<router-view></router-view> </div>
这里把router-link渲染成了a标签,to渲染成了href.
这样一个单页面应用就出来了。
效果就是点击三个a标签,分别加载不同的组件,而页面不会刷新,路由在更新。
那个888,是在最后测试了一下bootstrap的 button,看bootstrap导入了没有。
最后附上所有的全部代码:
app.vue
<!-- 一个组件由三部分组成 -->
<template>
<!-- 页面的结构 -->
<div class="app">
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<ul>
<li><router-link to="/">首页</router-link></li>
</ul>
<ul>
<li><router-link to="/course">课程</router-link><button class="btn-success">88888</button></li>
</ul>
<ul>
<li><router-link to="/mark">编辑器</router-link></li>
</ul> <!--路由出口-->
<!--路由匹配到的组件将渲染在这里-->
<router-view></router-view> </div>
</template> <script>
//页面的业务逻辑
export default {
name: 'app',
data() { //data必须是一个函数
return { //必须return。
msg:"hello"
}
},
}
</script> <style scoped>
*{
padding: 0;
margin: 0;
}
</style>
main.js
import Vue from 'vue'
import App from './App.vue'
import VueRouter from 'vue-router' //引入的三个组件
//定义路由组件。可以从其他文件 import过来
import Vmain from './components/Vmain'
import Vcourse from './components/Vcourse'
import Vmarked from './components/Vmarked' Vue.use(VueRouter); //定义我们的路由对象,每一个路由映射一个组件
const router = new VueRouter({
mode:'history',
routes:[
{path:'/',component:Vmain},
{path:'/course',component:Vcourse},
{path:'/mark',component:Vmarked} ]
}); //4 创建和挂载实例
new Vue({
el: '#app',
router,
render: h => h(App)
});
三个组件代码在上面已有。其实就是三个空模板。