|
本章节我们将为大家介绍 Vue.js 路由。 Vue.js 路由允许我们通过不同的 URL 访问不同的内容。 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。 安装1、直接下载 / CDN- https://unpkg.com/vue-router/dist/vue-router.js
复制代码 ! w( u' m2 b9 Z% C' D
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0 9 N% O# d8 G, I
NPM推荐使用淘宝镜像: 简单实例Vue.js + vue-router 可以很简单的实现单页应用。 以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示: HTML 代码8 R7 d, r% L. R$ I' P
- <script src="https://unpkg.com/vue/dist/vue.js"></script>+ ]8 { S- U+ q
- <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
$ T2 }; I2 `8 b, q+ Z7 N7 M& _8 @ - . _3 I# L' [* D' S! y
- <div id="app">
* O: P- {6 V8 k8 a9 S - <h1>Hello App!</h1>
+ Y7 a, i: S0 g" g7 ?0 o% m - <p>
. p6 K1 [2 D! y; l; b - <!-- 使用 router-link 组件来导航. -->
5 _. c: R/ Q& Y: l9 g( Z - <!-- 通过传入 `to` 属性指定链接. -->
. Q+ g; x1 s+ f - <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
- J" B; P$ w- z2 v. l W - <router-link to="/foo">Go to Foo</router-link>
/ I8 C/ F" T/ C) {* {. ` - <router-link to="/bar">Go to Bar</router-link>
) k+ B+ s' L7 Q B/ g - </p>6 D4 @; i( k: `5 @
- <!-- 路由出口 -->% {9 X# F: D9 K( l9 e- j0 D
- <!-- 路由匹配到的组件将渲染在这里 -->0 O" E: F, h# |$ O
- <router-view></router-view>& k; ~6 Y8 Q; S% {9 v, |% @
- </div>
复制代码 JavaScript 代码- // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)
9 l# m, O9 [. X+ M -
7 [; D4 M: Q0 } - // 1. 定义(路由)组件。
8 r& [1 M" _( \7 O8 R& v - // 可以从其他文件 import 进来( E4 h& A" ^) H- y
- const Foo = { template: '<div>foo</div>' }7 o2 }0 `/ J$ t' s: q- B2 R
- const Bar = { template: '<div>bar</div>' }7 |; [* i' w9 ?# k
- 1 R; S Z2 e. B# G
- // 2. 定义路由) K! ]4 F4 n6 D4 a
- // 每个路由应该映射一个组件。 其中"component" 可以是* n4 C8 E% j( q2 y, x0 v" V
- // 通过 Vue.extend() 创建的组件构造器,3 q. K) j( T2 L
- // 或者,只是一个组件配置对象。: ~- S' p l, z+ J
- // 我们晚点再讨论嵌套路由。& c0 A# q) C, y C" h4 H! D: r! w
- const routes = [
# D6 D% l* P7 w$ Z( D9 y( v - { path: '/foo', component: Foo },
# X6 I3 s- Q: ] ? - { path: '/bar', component: Bar }" I1 h6 l, r% F7 T; p1 ^1 j
- ]
2 r' G* ~1 g2 |1 d5 ?5 U# H r p -
% c1 |- m/ m" ?* J - // 3. 创建 router 实例,然后传 `routes` 配置
" _7 D; @/ _* m - // 你还可以传别的配置参数, 不过先这么简单着吧。, C; p0 s) {1 k7 g3 H
- const router = new VueRouter({
m& S W( r2 ]. ~) t - routes // (缩写)相当于 routes: routes
7 z+ j( d/ k* X% r+ _6 _# D - })
u1 ^% H/ {! y* V& E/ Y: G r2 q - , L y e; ]! h" n2 `# E
- // 4. 创建和挂载根实例。0 I1 \1 Y$ [2 f. a
- // 记得要通过 router 配置参数注入路由,: H# x. R {, o* {
- // 从而让整个应用都有路由功能
2 d0 O- m/ P+ z* L7 t, W/ M - const app = new Vue({9 \7 ] T# M$ S# q0 w3 c
- router
4 h1 g- X* j2 {2 K - }).$mount('#app')% i2 Y8 i/ F+ \ M& `
-
3 m( p) J$ K; c9 v! a4 J* |6 F - // 现在,应用已经启动了!
复制代码 NPM 路由实例接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码: 游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0 + H" u, e: M* v* T8 ^4 z
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令: - # 安装依赖,使用淘宝资源命令 cnpm- v0 e; q9 V% X2 A, \: h
- cnpm install) s5 X6 T: I" \+ j: C
* ~1 t+ ?" y3 D# ?- # 启动应用,地址为 localhost:8080
8 ?. @( _1 t, ^. ] - cnpm run dev
复制代码 如果你需要发布到正式环境可以执行以下命令:
+ Y2 t: ^" x0 L7 z/ N& {) D; d. N6 m& v: K$ |; L
# q- f; m" v" d0 [" Y4 G
; U5 b0 @: X, ^* Z! V! o' W
: D) X3 g& {0 N2 G6 M/ v- w" s, f1 y; F% t; B$ Q7 n
J+ g. v# ]8 J
( Q0 f9 x" E5 L( L3 c. O
: v: q/ ]# D; Q) B* N% g% b; U. @8 \( t5 _, d. `" G/ @2 T/ I6 V. g4 }5 u
5 [! O$ m6 ?3 ^+ R4 Y. p- H. c, m
( C: C# ]- y+ @; E
|