|
本章节我们将为大家介绍 Vue.js 路由。 Vue.js 路由允许我们通过不同的 URL 访问不同的内容。 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。 安装1、直接下载 / CDN- https://unpkg.com/vue-router/dist/vue-router.js
复制代码 & \) s& e# U. k4 O0 s- @1 K% A( w( I9 E
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0 $ b7 [( [3 M" O
NPM推荐使用淘宝镜像: 简单实例Vue.js + vue-router 可以很简单的实现单页应用。 以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示: HTML 代码! ]% q- K; _& ^' @" U4 x4 U# o
- <script src="https://unpkg.com/vue/dist/vue.js"></script>9 v& L* H) b; ~% {& }2 v6 l
- <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>8 X4 P: H* G% S
-
1 d: c, W" T w - <div id="app">8 ^& ^( D7 @! s7 Y. ]
- <h1>Hello App!</h1>
( e5 g+ a3 ^- C' B2 `; ]9 E- Y - <p>
9 `: I4 H5 c- v5 G! |* v - <!-- 使用 router-link 组件来导航. -->5 y6 ?3 {: Z' K3 U0 r
- <!-- 通过传入 `to` 属性指定链接. -->
/ k! ]6 g9 \/ g- b - <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
. P( P4 G) f. o) o0 y' N - <router-link to="/foo">Go to Foo</router-link>
& T% Z2 b) t/ K* A9 t - <router-link to="/bar">Go to Bar</router-link>3 u( d0 L r; t4 }
- </p>
4 L2 @) X' v# }2 ?8 Q* w - <!-- 路由出口 -->3 b# ?9 ^ d# P7 s& h( S. D' z$ y
- <!-- 路由匹配到的组件将渲染在这里 -->
+ F4 Z3 K" l8 ~1 C$ p6 G4 L8 K - <router-view></router-view>6 P# P% @3 r, T* t* H: n: j
- </div>
复制代码 JavaScript 代码- // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)& p, {& y: R8 w& A
-
8 b; _9 c0 @8 D - // 1. 定义(路由)组件。
( d9 I6 I' [( b6 w% w: ] - // 可以从其他文件 import 进来. O; f% }1 P/ ]( O/ ]; x5 h7 f+ n
- const Foo = { template: '<div>foo</div>' }+ J7 j9 s! x% w6 A% a
- const Bar = { template: '<div>bar</div>' }, [+ |4 u) y4 ^7 @* k9 Y
- V* e4 [' Q2 b& E r. W# |; s
- // 2. 定义路由: p% D( X: I9 ~. F" a
- // 每个路由应该映射一个组件。 其中"component" 可以是
* g0 r6 E/ l/ Q( j. B" b; N - // 通过 Vue.extend() 创建的组件构造器,
; S: N4 Y' y: s8 k( L+ ?. g9 a9 l/ V - // 或者,只是一个组件配置对象。' t1 u; G! }2 |
- // 我们晚点再讨论嵌套路由。( s% |7 I" u6 S# B
- const routes = [
( c) g% Y, X2 _6 J5 M - { path: '/foo', component: Foo },! l% a4 B( n! S+ q' R" }
- { path: '/bar', component: Bar }
' T p# P! q7 d. w9 e - ]$ S- G) k' Q, C, E8 b' B
- 4 z3 Q$ t6 A4 R6 D( c
- // 3. 创建 router 实例,然后传 `routes` 配置
; u) s, P4 q3 w/ j6 r8 p8 n5 | - // 你还可以传别的配置参数, 不过先这么简单着吧。6 M6 i& v) s4 l+ }" M/ f4 t n/ t, [1 e
- const router = new VueRouter({% D% w T* x, X- R. J( P
- routes // (缩写)相当于 routes: routes
* A; N- M" D. s' N& p& t8 y* o - })! c: w6 w$ m9 U$ Z
- 3 e' x( y2 r8 S1 D
- // 4. 创建和挂载根实例。' l& g6 W6 j6 A; V
- // 记得要通过 router 配置参数注入路由,2 p4 q1 X" S( I$ x: c. X* T0 E
- // 从而让整个应用都有路由功能
3 s; Z* J) u2 l+ v2 F - const app = new Vue({
4 M+ `+ }7 f" Q, C' t6 u- n - router
! P+ F3 K5 N/ r4 z+ P0 n9 C - }).$mount('#app')/ h( ^) M/ k% K9 b
-
; ?5 h f' i) \5 { - // 现在,应用已经启动了!
复制代码 NPM 路由实例接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码: 游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
1 m3 i4 K8 m+ e下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令: - # 安装依赖,使用淘宝资源命令 cnpm
3 \( R6 S o, G) A- G, p - cnpm install
# F+ G$ R, n% E1 T; h
1 W/ ]0 ?* Z L! Y1 B5 K. Y- # 启动应用,地址为 localhost:80805 L+ K& R8 w- U8 `0 j3 F
- cnpm run dev
复制代码 如果你需要发布到正式环境可以执行以下命令:
, T4 V2 D) F* \0 Q- U) g1 ]3 o4 R, v8 y5 h5 n+ j6 A3 L* ?
+ w) \* G) B# R+ @7 j i: v( f# A
) A8 `4 D! L. ~% V) o
! ?; j! I7 b4 r0 n$ a" x7 }& p! v" ^% t: B6 R: r4 X
; X3 @5 {8 r9 Q5 S
- w4 \- N$ K# k( [
3 K3 K8 s# y; y2 ]' ?0 Q( l" ?- m
K, k5 m0 C5 D) j
$ z! T& P* D4 V
. |: G5 B% `4 {0 q$ f |