|
本章节我们将为大家介绍 Vue.js 路由。 Vue.js 路由允许我们通过不同的 URL 访问不同的内容。 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。 安装1、直接下载 / CDN- https://unpkg.com/vue-router/dist/vue-router.js
复制代码 3 J1 W& E- U7 r# w1 k2 {2 J
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
7 g: G) l4 X5 N8 E; s2 VNPM推荐使用淘宝镜像: 简单实例Vue.js + vue-router 可以很简单的实现单页应用。 以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示: HTML 代码
8 |) k& H3 `; T+ Z) q5 w" F- <script src="https://unpkg.com/vue/dist/vue.js"></script>+ g# S) T1 Q# D$ {3 M i4 X& p
- <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
" p1 G+ ]+ {9 ~1 q1 u; c" Q* F -
( p- u5 b9 u7 @& J/ G3 M$ G- a - <div id="app">/ i4 z% {4 @) Q4 H3 C! |
- <h1>Hello App!</h1>
/ }% p+ M/ V' D% }! c3 |5 B. p - <p>2 I" N6 U) q& c5 J
- <!-- 使用 router-link 组件来导航. -->
/ F' P$ ]/ a9 r8 R8 r - <!-- 通过传入 `to` 属性指定链接. -->/ d: p- {" i i# d$ b
- <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
" h* C4 p$ t# E4 q% `8 X! m. t0 c - <router-link to="/foo">Go to Foo</router-link>/ s4 {' D7 ^$ w+ M$ `
- <router-link to="/bar">Go to Bar</router-link>
2 e Q& m; R. P. ] - </p>' F) l2 v7 }9 {. s7 w5 e( n
- <!-- 路由出口 -->
2 ]" e; q$ S9 d" g - <!-- 路由匹配到的组件将渲染在这里 -->
. l4 m. \; F# f" { - <router-view></router-view>% h: s, N( }, k# K; i2 ?- Z
- </div>
复制代码 JavaScript 代码- // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)0 {( \/ Q0 C% T- b, v+ Z
-
C4 R& g z* E7 N6 L7 v6 v - // 1. 定义(路由)组件。
Q4 u5 `/ K3 |1 p, \3 i - // 可以从其他文件 import 进来' B$ G7 G# A- o% o H# d
- const Foo = { template: '<div>foo</div>' }. x& v# D8 Y3 ?+ T3 |' s8 K
- const Bar = { template: '<div>bar</div>' }- G% t4 q5 ~ R
-
/ d5 r/ N* c# Z. H, t/ Z* C - // 2. 定义路由& [0 r; [5 l) u4 V2 N6 p
- // 每个路由应该映射一个组件。 其中"component" 可以是/ L& Y& K' v5 G5 e/ \8 a
- // 通过 Vue.extend() 创建的组件构造器,
# M9 ?/ f- ]7 a# F - // 或者,只是一个组件配置对象。' n' X$ d4 u9 r X* z _/ }
- // 我们晚点再讨论嵌套路由。& L/ O4 t' B P4 f( q" x! C
- const routes = [
; r0 i: v3 t5 m) `5 D( X - { path: '/foo', component: Foo },
) S# J1 E/ v5 |1 y3 T2 q4 S/ P - { path: '/bar', component: Bar }3 d6 g( U/ X, [) k" b, O2 F/ x
- ]
+ K+ j; k" ~+ T+ l -
; M! r% p: t+ m7 p$ l" e9 ^! ~ - // 3. 创建 router 实例,然后传 `routes` 配置" k( g5 Y5 ?5 ]5 l
- // 你还可以传别的配置参数, 不过先这么简单着吧。* H& `9 f) @( O0 u( ~. W9 ^) D) |2 `
- const router = new VueRouter({2 t4 E# g. d B1 Y
- routes // (缩写)相当于 routes: routes- ~5 H- P2 Q* k
- })
1 A: G( s0 P, L - z0 ]0 X* D7 j
- // 4. 创建和挂载根实例。8 x) Q7 g3 Q0 U8 S/ M, O; q
- // 记得要通过 router 配置参数注入路由,
% w# A4 m' O" a2 n- ?! S8 S4 ` - // 从而让整个应用都有路由功能
1 M X2 p9 R- \ - const app = new Vue({
% @0 Z7 _" S$ X7 D& \ - router: X$ |. W: {% G1 }3 S4 ~
- }).$mount('#app')
6 c8 q6 ?+ Q3 Q) V7 T4 q - 2 F9 A4 D" Q t7 O" {9 z( _
- // 现在,应用已经启动了!
复制代码 NPM 路由实例接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码: 游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0 6 [6 }2 w9 k' u) F; p
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令: - # 安装依赖,使用淘宝资源命令 cnpm
" a D6 X6 j1 c7 H* f7 G$ o; I - cnpm install. q+ d/ w! q8 i; Y. H* i4 s
, P( S3 H1 S8 r+ i; A) \- # 启动应用,地址为 localhost:8080* w/ l7 l& s( D" J* O* ]7 N% V/ e
- cnpm run dev
复制代码 如果你需要发布到正式环境可以执行以下命令:
& b6 j7 m0 D* K* X7 N5 C2 _+ j! P: P; o/ n
! E) r$ Y7 g: X8 ^1 t6 q3 X; X; G5 f. l1 X% u* s# q8 r
( D% N" f0 }6 |9 @0 L% @1 k m1 U' A) \7 d7 W" d4 {, L
?3 Q( X, H- j8 E# `1 C) b8 F
# d+ v) t8 p2 }5 d |6 k) ~4 G9 d, ]; g& M$ k" T
2 s" Q' k1 E) c
4 X& F# x+ o: [5 d9 D9 L# Z
c# ~1 r% B6 W |