三、vue-router

1. 介绍

Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。包含的功能有:

嵌套的路由/视图表
模块化的、基于组件的路由配置
路由参数、查询、通配符
基于 Vue.js 过渡系统的视图过渡效果
细粒度的导航控制
带有自动激活的 CSS class 的链接
HTML5 历史模式或 hash 模式,在 IE9 中自动降级
自定义的滚动条行为

2. 安装

  1. 直接下载
    https://unpkg.com/vue-router/dist/vue-router.js
    Unpkg.com 提供了基于 NPM 的 CDN 链接。上面的链接会一直指向在 NPM 发布的最新版本。你也可以像 https://unpkg.com/[email protected]/dist/vue-router.js 这样指定 版本号 或者 Tag。
    在 Vue 后面加载 vue-router,它会自动安装的:
<script src="/path/to/vue.js"></script>
<script src="/path/to/vue-router.js"></script>
  1. npm安装

    npm install vue-router
    

    如果在一个模块化工程中使用它,必须要通过 Vue.use() 明确地安装路由功能:

    import Vue from 'vue'
    import VueRouter from 'vue-router'
    Vue.use(VueRouter)
    

    安装前需要修改配置文件
    如果使用全局的 script 标签,则无须如此 (手动安装)。

  2. 构建开发版
    如果你想使用最新的开发版,就得从 GitHub 上直接 clone,然后自己 build 一个 vue-router。

    git clone https://github.com/vuejs/vue-router.git node_modules/vue-router
    cd node_modules/vue-router
    npm install
    npm run build
    

``

3. 基本使用

实例:

<!doctype html>
<html lang="en">

	<head>
		<title>Vue入门与实例</title>
		<meta charset="utf-8">
		<link href="http://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
		<link href="http://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" rel="stylesheet">
		<style type="text/css">
			.fade {
				opacity: 0;
			}
		</style>
	</head>

	<body>
		<div id="app">
			<nav class="navbar navbar-inverse">
				<div class="container">
					<div class="collapse navbar-collapse">
						<ul class="nav navbar-nav">
							<li>
								<a v-link="{ path : '/home'}">Home</a>
								<a v-link="'home'"></a>
							</li>
							<li>
								<a v-link="{ path : '/list'}">List</a>
							</li>
						</ul>
					</div>
				</div>
			</nav>
			<div class="container">
				<!-- 当我们改变路由,会刷新router-view里边的内容 -->
				<router-view></router-view>
			</div>
		</div>
		<script src='http://cdn.jsdelivr.net/vue/1.0.26/vue.min.js'></script>
		<script src='http://cdn.jsdelivr.net/vue.router/0.7.10/vue-router.min.js'></script>
		<script type="text/javascript">
			var Home = Vue.extend({
				template: '<h1>This is the home page</h1>'
			});
			// 路由器需要一个根组件,尤其演示的目的,这里使用一个空的组件,直接使用html做为应用的模板
			var App = Vue.extend({})
			// 创建一个路由器实例
			// 创建实例时可以传入配置参数进行定制,为保持简单,这里使用默认配置
			var router = new VueRouter({
				// hashbang : false,
				// history : true,
				transitionOnLoad: true
			})
			// 定制路由规则
			// 每条路由规则应该映射到一个组件,这里的组件可以是一个使用Vue.extend
			// 创建的组件构造函数,也可以是一个组件选项对象
			// 调用router的map方法映射路由,每条路由以key-value的形式存在,key是路径,value是组件。例如:'/home'是一条路由的key,它表示路径;{component: Home}则表示该条路由映射的组件。
			router.map({
				'/home': {
					component: Home
				},
				'/list': {
					component: {
						template: '<ul> \
              <li><a v-link="{path: \'1\', append : true}">1</a> \
            </ul>',
						ready: function() {
							console.log(this.$route.matched)
						}
					}
				}
			})

			router.start(App, '#app')
		</script>
	</body>

</html>
发布了25 篇原创文章 · 获赞 2 · 访问量 3324

猜你喜欢

转载自blog.csdn.net/sinat_24918465/article/details/102506209