本章节我们将为大家介绍 Vue.js 路由。 Vue.js 路由允许我们通过不同的 URL 访问不同的内容。 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。 安装1、直接下载 / CDN- https://unpkg.com/vue-router/dist/vue-router.js
复制代码 5 c# x! z# }4 P ]5 w3 n
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
' R& H1 m* O, y9 GNPM推荐使用淘宝镜像: 简单实例Vue.js + vue-router 可以很简单的实现单页应用。 以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示: HTML 代码$ P e1 Y# T' `9 N |% s( r; C0 l
- <script src="https://unpkg.com/vue/dist/vue.js"></script>2 Q Q6 p9 w% |, i
- <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>0 r4 V4 R% g$ \9 M/ F
-
9 t# m* D2 J" K& \; c) ]9 R - <div id="app">
1 h* K K8 j0 r) [! F - <h1>Hello App!</h1>; e9 n9 g9 G5 v$ X
- <p>
8 x( O5 N2 ]& j+ Y# k) v# a1 g8 J - <!-- 使用 router-link 组件来导航. -->
+ F' C B" n; \9 t - <!-- 通过传入 `to` 属性指定链接. -->
. U: H+ J; V. h" ] - <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
0 a% i0 V+ j9 n* H - <router-link to="/foo">Go to Foo</router-link>; Q" P4 E- M' K# y6 `% a) U
- <router-link to="/bar">Go to Bar</router-link>
. d2 P9 @6 T: C" A; u9 P6 ?5 o - </p>
; @0 i4 d2 r! K - <!-- 路由出口 -->
+ O1 M: r2 u6 r8 f - <!-- 路由匹配到的组件将渲染在这里 -->9 D1 O! U& N g) h7 d
- <router-view></router-view>4 _5 x. J3 @1 O- I' K
- </div>
复制代码 JavaScript 代码- // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter): I. _$ `+ w6 }1 K
- 2 l1 R6 T1 }# @2 W2 a
- // 1. 定义(路由)组件。) }+ @5 O0 b5 R7 T1 o
- // 可以从其他文件 import 进来
6 B; l; n/ e2 R0 E6 @ - const Foo = { template: '<div>foo</div>' }
' K7 z' M! j6 q: N; t - const Bar = { template: '<div>bar</div>' }
, g. } ^5 [3 F - 0 ?0 i8 k. j" f2 F4 d
- // 2. 定义路由, A- N8 \, j: o+ O. F' _& t9 k
- // 每个路由应该映射一个组件。 其中"component" 可以是2 f& ^& _/ U% G* R+ ]
- // 通过 Vue.extend() 创建的组件构造器,: J3 ~% C& c2 ^5 c6 V: F
- // 或者,只是一个组件配置对象。
3 N" v: e. A9 n6 l* K - // 我们晚点再讨论嵌套路由。. H" s# ^% Y) I7 G1 i! ^
- const routes = [
; l6 D3 R/ e: T: Y) i; N - { path: '/foo', component: Foo },
) H5 H1 B( B9 H% e7 T( { - { path: '/bar', component: Bar }7 h, }& e3 R3 z
- ]) M0 k+ H% M2 c: `! ^2 `3 ?
-
& K$ t5 H4 ^! _' f/ q3 u - // 3. 创建 router 实例,然后传 `routes` 配置( W1 Q; H* x2 W, N: N, I
- // 你还可以传别的配置参数, 不过先这么简单着吧。
, p/ J# F* C% P" H6 c - const router = new VueRouter({: } ^) v; p1 y2 H9 a
- routes // (缩写)相当于 routes: routes
; U. R" C( T1 `9 j - })
; J i5 x) K$ b8 _ - , K$ t2 h( Q' |" Z/ I
- // 4. 创建和挂载根实例。
2 y [/ n8 R% [* X& I% m - // 记得要通过 router 配置参数注入路由,
2 `& f5 k( _1 a, Y2 }1 x! R9 ] - // 从而让整个应用都有路由功能
; o+ O9 j" i* T! L - const app = new Vue({, z1 p) H7 U, E( C, ]
- router
: G( S+ R; T8 d9 y! ^ - }).$mount('#app')
* v0 R6 V4 n# {1 |1 m - , i4 V9 A7 G7 J$ _+ P8 g
- // 现在,应用已经启动了!
复制代码 NPM 路由实例接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码: 游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
: T j2 T( O/ j1 S0 e下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令: - # 安装依赖,使用淘宝资源命令 cnpm. X2 ]# Q7 }$ g
- cnpm install
4 l! _, Z6 n) W% k - % A4 h ~1 g9 P& B$ ^; f1 E
- # 启动应用,地址为 localhost:8080; Q+ Q! z# y; H3 ~" R
- cnpm run dev
复制代码 如果你需要发布到正式环境可以执行以下命令:( ^ g3 |# \6 {& [, `
7 h/ n4 y; j3 j6 e
* X I- M) K! C- J' E& J. m
h5 x9 V) w7 L2 ^7 j( Z' U# ]( G) M2 Q9 t
$ a! w8 H0 x' `( n3 k Y
$ L' T* N+ B" \; W: Q$ I2 h" l% y
7 |5 x) M7 {% N9 Y" D8 K% d K A8 Q: V' b( K6 n: X9 O2 y- \
! b: A: [9 o% B1 Y
7 h; w$ J7 U& a* I
/ M1 h( J; A6 G) B, v) k |