components-->Home.vue:
<template>
<div>首页内容</div>
</template>
<script>
</script>
<style lang="css" scoped>
</style>
components-->About.vue:
<template>
<div>
关于我们内容
</div>
</template>
<script>
</script>
<style lang="css" scoped>
</style>
App.vue:
<template>
<div id="app">
<router-link to="/">首页</router-link>
<router-link to="/about">关于我们</router-link>
<router-view/>
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
<style>
#app {
font-family: 'Avenir', Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
height: 2000px;
}
</style>
router-->index.js:
import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/Home'
import About from '@/components/About'
Vue.use(Router)
export default new Router({
// history模式需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404。
mode: 'history', // 默认为hash模式,URL中带有:/#/
// scrollBehavior这个功能只在支持 history.pushState 的浏览器中可用。savedPosition当且仅当 popstate 导航 (通过浏览器的 前进/后退 或 go(-1)/forward() 按钮触发) 时才可用
scrollBehavior(to, from, savedPosition) {
// return 期望滚动到哪个的位置
// return {
// x:0, y:200
// }
console.log(savedPosition);
if (savedPosition) {
return savedPosition;
} else {
return {
x: 0, y: 0
}
}
},
routes: [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/about',
name: 'About',
component: About
}
]
})
页面效果: