|
本章节我们将为大家介绍 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% ?% m: a: I3 ?/ o) h3 U5 P
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0 7 z; \+ v) {6 P% R3 D6 Z
NPM推荐使用淘宝镜像: 简单实例Vue.js + vue-router 可以很简单的实现单页应用。 以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示: HTML 代码) ?9 H1 x/ h5 C# p2 P* t) v; m
- <script src="https://unpkg.com/vue/dist/vue.js"></script>
3 L, g5 t! s0 u5 } - <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>( V1 |7 o; b: P: v6 U
- 9 x" A4 R; y/ A: c
- <div id="app">
! ^) ~* H' @4 R& u% Z" y) X5 L7 q - <h1>Hello App!</h1>0 _, j+ M7 v' Y# W! w z( X
- <p>
7 f* p" ^6 F. |+ t' w# j+ R - <!-- 使用 router-link 组件来导航. -->
2 t1 N7 C! U y7 E" w" G6 r - <!-- 通过传入 `to` 属性指定链接. -->3 \0 y8 \( |7 a) y8 ^3 Y* G
- <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->9 ]1 N/ l3 ~0 u6 U) @/ }
- <router-link to="/foo">Go to Foo</router-link>
/ ?; I4 a% a6 n/ k. m" S0 D4 ` - <router-link to="/bar">Go to Bar</router-link>
, M, ]) k/ s) O, `$ b: o - </p>, c3 B7 E+ K3 N/ a* R
- <!-- 路由出口 -->" y, Y7 h0 u3 _" r. w, S
- <!-- 路由匹配到的组件将渲染在这里 -->/ O; i1 ~: p& n/ Q6 ], _
- <router-view></router-view>
9 a4 }, e/ s5 u$ @; u - </div>
复制代码 JavaScript 代码- // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)0 Z' g" k3 N4 e- c+ s
- 2 q# b" p% n7 }! ~
- // 1. 定义(路由)组件。
& [3 F" [) t" K$ |9 V - // 可以从其他文件 import 进来! J% G& f: z, h e2 Q
- const Foo = { template: '<div>foo</div>' }9 i, G! Z" Q2 t3 Q! }
- const Bar = { template: '<div>bar</div>' }
4 X' ~3 V5 @0 f" _& Y - # W$ N9 ~! b! a! F8 ]6 f
- // 2. 定义路由
$ x* I4 g) N2 H; _) @2 }* [* L! Z - // 每个路由应该映射一个组件。 其中"component" 可以是
" D; x% B# a6 ~# C$ S) C - // 通过 Vue.extend() 创建的组件构造器,; p+ o( l3 g- g
- // 或者,只是一个组件配置对象。
4 i; ]1 w' A" u# ]1 z3 { - // 我们晚点再讨论嵌套路由。9 u2 i7 [$ B& V
- const routes = [+ z+ z0 c; l$ c7 k- j
- { path: '/foo', component: Foo },
, l3 @# Z+ Z) Q3 S& }( Q7 h+ J - { path: '/bar', component: Bar }
* i& J3 X* `. [! j9 H - ]9 e! ?' O& K: P% B. d
-
! Y1 T' F3 j: U: L$ o3 I3 }; Y" e/ T - // 3. 创建 router 实例,然后传 `routes` 配置; [- J/ C0 p- s7 b+ U2 a% s
- // 你还可以传别的配置参数, 不过先这么简单着吧。
2 [3 a3 B1 Y* o6 b' g8 \ Z - const router = new VueRouter({
$ l6 a- d0 b0 V$ q$ D - routes // (缩写)相当于 routes: routes
4 Z8 }$ ^! t9 R H7 k! a( I - })/ f( a. l4 {& `8 R7 {
- 7 W8 J3 x/ L6 Y# y
- // 4. 创建和挂载根实例。% q$ u- r0 n% [6 \3 O" b6 I
- // 记得要通过 router 配置参数注入路由,# M0 B7 w' d0 R) _
- // 从而让整个应用都有路由功能
; t2 U5 Z& l# @# \9 \% | - const app = new Vue({
( ~7 C# i* ?, V S% ~ - router
9 W# G: a0 ]) ]/ B2 S - }).$mount('#app')
7 e0 s7 I8 }6 ^' u -
6 B3 Z2 v! _9 \7 T! | - // 现在,应用已经启动了!
复制代码 NPM 路由实例接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码: 游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0 9 E- R" {; i2 W; C z: y( |
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令: - # 安装依赖,使用淘宝资源命令 cnpm
/ ^0 k5 p' t; U. A/ t4 Y - cnpm install8 r+ P9 l: S0 _) x! Q- Y
8 V/ X" w4 o! R" c- E; [% w- # 启动应用,地址为 localhost:80804 t& g0 v( u8 ?7 e" u
- cnpm run dev
复制代码 如果你需要发布到正式环境可以执行以下命令:
+ L$ Q2 ~8 ?' Z7 {0 F* \1 G/ D6 Y* F! Q% V. O `
0 [) X9 c5 U" H. K
, P. {1 _2 @! B7 z. _) A' ?1 ^& y$ o% R O' u& G4 M
. `: ^8 Q4 E; f. Q
/ s% P) l' _' Y; W
6 T2 [$ C7 X6 f+ r
1 \% d1 N0 s4 F, ?" H8 a
5 L8 O6 J7 X2 {& B! i4 y! ?3 L5 a) t1 R1 D3 U
- W9 @- A6 S; L4 q/ _ v3 O( d8 ~9 S! a
|