manlili blog

vueJS实现SPA

gitHub地址:https://github.com/manlili/vue_spa

只是简单的写个demo,实际开发中可能需要分框架部分和业务部分,这里只是简单实现下结果。

先来看下目录:
图
我们用vue搭建单页面,需要借助vue-router.js插件,这个是vue的路由。

再来看下入口文件index.html的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="js/vue-router.js" type="text/javascript" charset="utf-8"></script>
<script src="js/vue.js" type="text/javascript" charset="utf-8"></script>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
</head>
<body>
<div id="app">
<a class="list-group-item" v-link="{ path: '/home'}">Home</a>
<a class="list-group-item" v-link="{ path: '/about'}">About</a>
<router-view></router-view>
</div>
<template id="home">
<h1>
我是home
</h1>
</template>
<template id="about">
<h1>
我是about
</h1>
</template>
<script type="text/javascript">
//声明使用路由
Vue.use(VueRouter);
var home = Vue.extend({
template: "#home"
})
var about = Vue.extend({
template: "#about"
})
//创建路由
var router = new VueRouter();
//映射路径
router.map({
'/home':{component:home},
'/about':{component:about}
})
//启动路由
var app = Vue.extend({});
router.start(app,"#app");
</script>
</body>
</html>

上面的代码很简单,如果看过我写的vue的全套手册分析就能看懂了。
下面来看下效果:
图
当我们点击Home出现
图
当我们点击About出现
图
由此可知,页面的整体结构没有变化,只是更换了里面的内容。

请我喝杯果汁吧!