|
本章节我们将为大家介绍 Vue.js 路由。 Vue.js 路由允许我们通过不同的 URL 访问不同的内容。 通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。 安装1、直接下载 / CDN- https://unpkg.com/vue-router/dist/vue-router.js
复制代码 ; n1 C: _& s' Z/ y" C& ~# O: k
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
7 ]% w2 S6 T, }- wNPM推荐使用淘宝镜像: 简单实例Vue.js + vue-router 可以很简单的实现单页应用。 以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示: HTML 代码
H* l" ^7 v( \. V: O0 S- <script src="https://unpkg.com/vue/dist/vue.js"></script>
U. R( U+ T; N( L7 Y - <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>4 ^; Z* g2 R6 Y# A
-
: O( F9 i3 p2 A) N( E/ T - <div id="app">
, A) }2 r/ t8 _( x2 r0 C - <h1>Hello App!</h1>( @2 `" \; N8 b% m5 D
- <p>
" s) i. _ k1 f3 X( I' ?4 a - <!-- 使用 router-link 组件来导航. -->
/ z F. v+ \2 H+ H$ ^ - <!-- 通过传入 `to` 属性指定链接. -->
5 c( [- K3 ^( j - <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->. @5 z; ~! \3 J1 z/ \4 B
- <router-link to="/foo">Go to Foo</router-link>3 j1 Z0 C. J$ E! ` q4 Q& j
- <router-link to="/bar">Go to Bar</router-link>* a8 k3 L; c H* m4 C: | d, e" s
- </p>+ f* o1 D# |0 s
- <!-- 路由出口 -->
4 `) E$ X0 G" P4 o" u+ q - <!-- 路由匹配到的组件将渲染在这里 -->$ F$ K3 ]8 C ^- {+ o, ^; Y
- <router-view></router-view>
$ j0 f k% l* G* N% k3 w) q - </div>
复制代码 JavaScript 代码- // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter) d, @8 A) ` n2 R
- $ [3 m9 @9 h. B; J1 i- x
- // 1. 定义(路由)组件。4 \8 @6 ]) b, G. i# ~' L
- // 可以从其他文件 import 进来
7 r* O! \! r% E' ~ - const Foo = { template: '<div>foo</div>' }
& G8 a9 C4 j* X6 t% E& G0 w - const Bar = { template: '<div>bar</div>' }, x [0 I/ H8 \
- # `: ^( N8 \5 Y
- // 2. 定义路由) N- c0 M" p; L Q* R
- // 每个路由应该映射一个组件。 其中"component" 可以是& e- Q4 F1 Q* y1 O
- // 通过 Vue.extend() 创建的组件构造器,
& e1 n. N/ j9 j. W9 i4 o - // 或者,只是一个组件配置对象。6 P5 W9 W. G+ _- H @
- // 我们晚点再讨论嵌套路由。
4 f+ B- d- ]/ l, @9 G7 ] - const routes = [' l. }. t3 o; h
- { path: '/foo', component: Foo },! r5 w! F1 ?; M8 K9 R. v
- { path: '/bar', component: Bar }! m4 ^5 j% G7 B+ T
- ]
! |) R% b3 H: M/ S -
& h: v% G" ]% D% B2 e9 j/ _ - // 3. 创建 router 实例,然后传 `routes` 配置, p0 F$ R5 d1 q- V( j! x) g
- // 你还可以传别的配置参数, 不过先这么简单着吧。
( |9 x* m v( p7 Y7 S; F - const router = new VueRouter({
/ t+ \1 r% q }0 H* S - routes // (缩写)相当于 routes: routes
) g' R$ ?* [# O0 X5 D7 A! W - })3 c) _! O, ^& \- U( z m5 ~" X
-
9 k, V) a0 F7 { R; p* T( ] - // 4. 创建和挂载根实例。( ~5 q% p w8 `3 M/ a: C) o
- // 记得要通过 router 配置参数注入路由,$ V. ^! B) m# S4 C
- // 从而让整个应用都有路由功能/ F5 t5 _% p' ^# a; \# B+ N- K
- const app = new Vue({
* Q" r* y$ ?; Z0 W - router# {" X2 w2 U& r& T2 D8 B6 U
- }).$mount('#app')
7 J3 @5 U5 v0 T! m {& @ -
% {/ B: m r3 t - // 现在,应用已经启动了!
复制代码 NPM 路由实例接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码: 游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0 5 @( Z! b& a% `. w0 d4 B
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令: - # 安装依赖,使用淘宝资源命令 cnpm
4 x& }. i' S, `2 n" l - cnpm install
% \# k* I0 |( V T% N- O - 4 n2 x% }( o/ V0 Q1 g' \$ Y/ x
- # 启动应用,地址为 localhost:8080# _( J+ X7 _7 }8 B4 \
- cnpm run dev
复制代码 如果你需要发布到正式环境可以执行以下命令:
3 S; Z/ i' Y8 U! @3 ^6 \* y
0 w3 J/ s: y+ P. I) H6 t) V' I! n! a$ p
# ?1 v2 [) k$ T3 b' E# J$ X ?8 G
9 G% _3 D8 [' v Q" \5 x; x+ [% G9 k" }3 `5 Z7 V
$ O9 [6 m# q0 n5 u* s5 N& `( K7 y2 Y0 U( c
: Z* N K8 a+ U
( }9 u* c9 V, K- ]0 c
9 _1 L: R+ [3 |" h8 z# E; z
3 N! W$ u' E3 T9 j% w' F |