本章节我们将为大家介绍 Vue.js 路由。 Vue.js 路由允许我们通过不同的 URL 访问不同的内容。 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。 安装1、直接下载 / CDN- https://unpkg.com/vue-router/dist/vue-router.js
复制代码 : N6 y; S3 b) o# G
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0 / h' c- \: {4 E* u
NPM推荐使用淘宝镜像: 简单实例Vue.js + vue-router 可以很简单的实现单页应用。 以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示: HTML 代码( P! k# t1 A2 q" `5 q! `' r* ]( ^
- <script src="https://unpkg.com/vue/dist/vue.js"></script>, t7 z' S. X( i% v' R7 @+ X
- <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
, T& J% i; v2 D1 a o - - e+ y$ S) m' I4 _% I
- <div id="app">
5 @* z4 m" w2 c' M2 c( B/ F - <h1>Hello App!</h1>: f- I$ i# c9 z1 _; }& v
- <p>" G+ R, `% U' k& i
- <!-- 使用 router-link 组件来导航. -->
2 g3 ]8 Q9 r8 a9 N! [% a% [ - <!-- 通过传入 `to` 属性指定链接. -->/ e. U0 ]: B R$ p' |" O
- <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->0 T4 y9 u% X, ?% b6 t& I
- <router-link to="/foo">Go to Foo</router-link>- P3 ~8 G+ s6 e( {- M1 d% \
- <router-link to="/bar">Go to Bar</router-link>
# C/ f; T" @) d4 `. K% L8 D - </p>
0 T, I! g' |8 A+ @8 x - <!-- 路由出口 -->
% ]9 q0 x5 H" g7 {4 f" M2 f - <!-- 路由匹配到的组件将渲染在这里 -->
( `' U+ R2 p8 e4 R, p* f - <router-view></router-view>
4 @/ V( a. L2 d - </div>
复制代码 JavaScript 代码- // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)
; |1 J2 j s0 z3 Q' V) x -
9 S9 f$ A: s: V2 X2 Z9 J - // 1. 定义(路由)组件。
2 a9 z1 I& p$ {: | - // 可以从其他文件 import 进来
, j2 y6 _* J# J) F( l - const Foo = { template: '<div>foo</div>' }" w+ m! ` \3 F( `5 k; ^2 N
- const Bar = { template: '<div>bar</div>' }
2 v% z0 d1 h+ Z, l% [ - 8 T( \- D X3 J9 e+ e* D- G% z1 \
- // 2. 定义路由
& Z2 O4 b Y( N' m% e' e5 a6 p - // 每个路由应该映射一个组件。 其中"component" 可以是
" L9 Z( w% h2 w) h - // 通过 Vue.extend() 创建的组件构造器,
: W, s4 S+ D: e/ T2 J, J( v - // 或者,只是一个组件配置对象。" ]1 I5 S; \# d& V: W
- // 我们晚点再讨论嵌套路由。$ Z3 m5 Z* _- @9 _) e
- const routes = [
# ]4 v! M" ^2 e* c - { path: '/foo', component: Foo },
' D& _* w$ H9 I+ N. ? - { path: '/bar', component: Bar }
2 B+ q N0 m" }; b" E k( w - ]' u5 h. {/ W- N1 p& M
- 7 a0 `- D+ q* j+ Z
- // 3. 创建 router 实例,然后传 `routes` 配置% f' G# d! b) Y' X ]$ i- i
- // 你还可以传别的配置参数, 不过先这么简单着吧。
. L# u: H. ~4 ?. t# O( n - const router = new VueRouter({3 H8 w/ F. k" P2 |
- routes // (缩写)相当于 routes: routes
, x% c Q+ T: L. G - })
+ v) @' F7 i0 U3 K3 o/ }6 N -
4 i" A) J0 `, m - // 4. 创建和挂载根实例。2 u: N( H& N0 w+ p
- // 记得要通过 router 配置参数注入路由,! k9 M! Q+ o& ^/ C
- // 从而让整个应用都有路由功能
/ W- K* Y/ K S) ~5 J" w - const app = new Vue({7 ?3 d& B. L" J2 ^7 u; Y' c1 _
- router
% r4 v7 G: |6 x3 i% I/ y2 L) P - }).$mount('#app')
# h* v A% ?! c* s -
$ r' b# {& ^2 \( g, G4 A: _ - // 现在,应用已经启动了!
复制代码 NPM 路由实例接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码: 游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
5 x- T7 J9 M2 `下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令: - # 安装依赖,使用淘宝资源命令 cnpm7 h+ Q" _4 m# g z* u' i
- cnpm install
4 D" O2 e0 n9 s - ! S1 z8 P6 _5 d4 N. S
- # 启动应用,地址为 localhost:80808 [1 K. b2 X* Q5 H" M3 r8 W
- cnpm run dev
复制代码 如果你需要发布到正式环境可以执行以下命令:
' z. q j3 k$ b( @9 F5 h+ u/ L8 T) [9 B2 j$ h) a: Q# ~" U u
/ k) M! e1 Y7 S
; G# T9 \* a% b8 [0 ?4 n/ ~3 J1 f! h- [ D! T" R
$ m+ b! y3 c2 r H
$ X3 e' d' E2 |7 _! D7 ~
+ f4 R Z" [. t9 e4 j* }4 g0 f: [- b1 p Z9 A
# ?0 _' t, Z5 K' |
( o) m0 b r6 V5 f V9 @) X4 t$ l! q: V5 U- W& ?
|