|
本章节我们将为大家介绍 Vue.js 路由。 Vue.js 路由允许我们通过不同的 URL 访问不同的内容。 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。 安装1、直接下载 / CDN- https://unpkg.com/vue-router/dist/vue-router.js
复制代码 : Y/ l# [' f) T+ N5 f( E- e
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
) b9 Q! i8 o( X/ P' h4 w7 {NPM推荐使用淘宝镜像: 简单实例Vue.js + vue-router 可以很简单的实现单页应用。 以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示: HTML 代码
/ E' K& i/ {2 h- <script src="https://unpkg.com/vue/dist/vue.js"></script>
! }! o% \; V0 R9 \1 J0 ^ - <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>! [& o( V0 P1 s% e2 f
-
: }; F- d- W# K) H - <div id="app">
7 W+ q# D* c5 S: V9 `0 ^" u - <h1>Hello App!</h1>
- ?+ e$ L% R9 }' ~9 Q+ _4 t - <p>
: x9 }6 n6 y6 e ?3 W2 @: l - <!-- 使用 router-link 组件来导航. -->1 \& v8 S% I2 z; l3 A
- <!-- 通过传入 `to` 属性指定链接. -->, g# C0 B* z, a$ A5 C, J
- <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->% @ _7 c% L+ |: c" W" |; g6 i1 S
- <router-link to="/foo">Go to Foo</router-link>. n9 Q* h; z7 F/ j' b8 H
- <router-link to="/bar">Go to Bar</router-link>" R' a! F% D% _% O$ ]$ C" ]: O
- </p>
. n5 a$ _# R% m- L - <!-- 路由出口 -->
5 ~3 m; I6 h# Q/ M- i! g% x - <!-- 路由匹配到的组件将渲染在这里 -->
2 r: Q7 N+ s+ \1 H" b- T6 Q) J. w - <router-view></router-view>
. d4 X: s/ Q- E9 @$ F - </div>
复制代码 JavaScript 代码- // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)
3 Z% [. g; u% b. ]8 G -
2 v3 q$ M5 z8 ]! r7 o( ~. Y1 \ - // 1. 定义(路由)组件。
1 E" {% p1 F4 i7 G - // 可以从其他文件 import 进来" A* X6 ^& p+ i% r1 q% E
- const Foo = { template: '<div>foo</div>' }
8 t* Z' E& z$ b4 D3 h2 [ - const Bar = { template: '<div>bar</div>' }
1 U0 f) e0 j$ F3 x k - / d! N3 z4 j1 W2 |
- // 2. 定义路由/ Z4 c& K" m1 h# k; x4 }" Q
- // 每个路由应该映射一个组件。 其中"component" 可以是; G) {0 Z* T$ e4 {5 E! k
- // 通过 Vue.extend() 创建的组件构造器,: \# ?/ @4 S* h/ q
- // 或者,只是一个组件配置对象。0 N; }! x/ ]- @: S- w9 N
- // 我们晚点再讨论嵌套路由。
j, B' [- t9 `8 N/ ?8 V - const routes = [1 ]* f& z) M0 ] L4 f/ ]
- { path: '/foo', component: Foo },) X h6 W( G8 T; l
- { path: '/bar', component: Bar }
# h G4 f4 I3 @! X. K- X - ]
; o$ W) U+ f! a" r: l# x - 8 c! A. v+ r1 G8 B
- // 3. 创建 router 实例,然后传 `routes` 配置
$ D3 }4 I" i2 u, W - // 你还可以传别的配置参数, 不过先这么简单着吧。
/ J: p, a9 V$ w - const router = new VueRouter({/ n5 F9 o- y' \ ^8 y" g- f1 E& k3 z
- routes // (缩写)相当于 routes: routes1 d. L$ t. _# i4 j8 O1 W5 V( v
- }) \. U& I: C& e
-
$ F( t, E; \; C& L - // 4. 创建和挂载根实例。& g$ n' @# m$ M: Q) x
- // 记得要通过 router 配置参数注入路由,4 L8 q2 o1 h; u h4 ^. a
- // 从而让整个应用都有路由功能
) m6 V _# _: v2 v! Q' W' y6 F - const app = new Vue({, e" T6 N7 ?/ ?, B1 C
- router
& @( [4 p/ S/ c5 F4 u - }).$mount('#app')
' e' S( K2 y+ e - 9 J: }7 R! m4 Y! c' G) X, n
- // 现在,应用已经启动了!
复制代码 NPM 路由实例接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码: 游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0 $ a" S# J9 l0 v* v) x3 a2 [
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令: - # 安装依赖,使用淘宝资源命令 cnpm
) m: _1 Q; j$ G+ `4 K* {1 E0 ^ - cnpm install) T" Z, Q- ?; o- h! ~2 i. ]9 W
4 b* V% f) n4 Y+ O0 p- # 启动应用,地址为 localhost:8080
: }8 w" r% \" @+ ^$ f. q' [ - cnpm run dev
复制代码 如果你需要发布到正式环境可以执行以下命令:7 U' ~3 _ g6 a# \
7 j' ]0 [) p% ^6 S C
- F( t$ r. H1 d- R( N
" d* L5 P: ^1 E8 I
5 e) e5 X0 ]8 n; M( B8 n# z4 ~+ T. C
: q$ r ^; ]9 D3 s. @5 _4 E5 K1 ]/ z _/ s; W& f8 |7 Y5 q
3 t3 H* i; t! Y+ C* P
( S4 V5 l7 @. ^# k
0 e2 r$ c: q, e$ E( B* M' o+ I- [' H. r- F; h+ [' x) w% s2 w3 x( k) s ~ Q( ^
|