cncml手绘网
标题: Vue.js 路由 [打印本页]
作者: admin 时间: 2018-7-4 11:44
标题: Vue.js 路由
本章节我们将为大家介绍 Vue.js 路由。
Vue.js 路由允许我们通过不同的 URL 访问不同的内容。
通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。
安装1、直接下载 / CDN- https://unpkg.com/vue-router/dist/vue-router.js
复制代码 / |( j, A1 A, J5 u, U
, E- @8 h6 e' D# q% O! ^NPM推荐使用淘宝镜像:
简单实例Vue.js + vue-router 可以很简单的实现单页应用。
以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示:
HTML 代码5 \3 m5 r. o- d6 `0 j
- <script src="https://unpkg.com/vue/dist/vue.js"></script>- {/ I$ _2 C9 Q8 W) t
- <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>0 K: c% p+ R) c ^8 h
-
2 }8 `0 O0 y( _) i8 I: ^ - <div id="app">
. t+ S3 ^( u9 M( C& ]2 ` - <h1>Hello App!</h1>
/ q2 P7 r3 P$ |: [% m - <p>6 f8 e, [" v& }; h
- <!-- 使用 router-link 组件来导航. -->
7 w0 u$ I9 j4 ~( s - <!-- 通过传入 `to` 属性指定链接. -->2 B3 ]3 j! M5 d$ C. P* a
- <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
( j$ q& T+ F, ~. \5 B- ~/ t - <router-link to="/foo">Go to Foo</router-link>
$ ^* k, Q; x8 o) c" X _" t8 | - <router-link to="/bar">Go to Bar</router-link>, Y4 i4 X: e6 t( p. G
- </p>
7 d) e; t4 h, g: M - <!-- 路由出口 -->
% _- ]- J# O- P4 [ Z6 u! h2 `5 `/ S - <!-- 路由匹配到的组件将渲染在这里 -->) [6 f. d0 b) R6 o, G( p Q1 F
- <router-view></router-view>
A7 D; F6 p6 G0 M; p; Q - </div>
复制代码 JavaScript 代码- // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)' _% }+ B# e; v# Q( y
- & j- ?7 _- }! U# V: @: D( @
- // 1. 定义(路由)组件。
* e- W$ Q8 A. @# [ - // 可以从其他文件 import 进来
3 w. T* \0 ]: _ A% O - const Foo = { template: '<div>foo</div>' }
( ^! e- |, c: ]6 M - const Bar = { template: '<div>bar</div>' }, a( [, Z& G* r1 T1 y- r+ E: Z. N3 n
- 0 t' _4 b" k. S+ H
- // 2. 定义路由
. s8 \& B& R; k, Q4 E. r- M - // 每个路由应该映射一个组件。 其中"component" 可以是
3 V4 e8 G9 F! R3 A' G2 G - // 通过 Vue.extend() 创建的组件构造器,
# V! j0 C* i6 c3 W8 l; | - // 或者,只是一个组件配置对象。
3 k+ ]( J) |7 B, {! O1 l - // 我们晚点再讨论嵌套路由。
7 s0 j% \ M. ]4 k) k, n+ \ - const routes = [
" _ m0 i% r- D9 [! L- ` - { path: '/foo', component: Foo },% t- M: C8 `' B: O' f! n
- { path: '/bar', component: Bar }6 A; ^$ r( Q9 K5 A: p' j$ i, O
- ]
4 \% z8 O( y8 ?5 n3 U+ x - 1 r' R& |; M7 M r- L4 R+ ]7 G
- // 3. 创建 router 实例,然后传 `routes` 配置9 I* G" h4 Z B8 m
- // 你还可以传别的配置参数, 不过先这么简单着吧。! B, [+ n O. _) ?0 d% `3 c" h; m
- const router = new VueRouter({+ j8 \& z5 _, x/ p4 Y; ~- M6 J+ V
- routes // (缩写)相当于 routes: routes
% u7 }' w" `9 K - })! p a a1 U) U
- 7 I8 C1 {0 X6 A: ?; S& o
- // 4. 创建和挂载根实例。' A4 x* W M) p! T( h( ]
- // 记得要通过 router 配置参数注入路由,; }/ @/ ]- z" a, P g9 g; x7 g4 E
- // 从而让整个应用都有路由功能- U% Y! N9 j* V& n& F/ r+ X/ o
- const app = new Vue({# T) n0 U9 k( A% r! y7 J2 a
- router2 g. A Y# a" C3 v9 X- O
- }).$mount('#app')
( L) Q; t+ q, n. { - i/ l# L1 E/ M7 D- P
- // 现在,应用已经启动了!
复制代码 NPM 路由实例接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码:
6 p& `5 k/ {5 W2 Z& t, C下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令:
- # 安装依赖,使用淘宝资源命令 cnpm7 i3 i: e- x4 B- o, M( C
- cnpm install4 H7 J8 E$ q# K
5 q" d O8 n! ?! b2 q- # 启动应用,地址为 localhost:8080
( \8 q" ` ]6 i" i - cnpm run dev
复制代码 如果你需要发布到正式环境可以执行以下命令:! K9 J7 @% G6 p2 [ ^4 r
0 c* c' V: t. x7 |( j; v& p
2 \0 R. M% V2 k9 k
' c7 p: ?# H! h
, f+ j+ L5 w0 F; f: }+ f; u) S Z- z0 R) u. r- Z O& B, [) \8 F
$ @6 i" _) u8 o' i6 h' A" H2 \7 {# C* m+ n8 x: v9 @
/ `6 ~1 q1 G7 `) L9 @4 w8 K* [* q0 _0 }' U+ s
0 e# P9 f8 E' a3 S
7 v2 j8 M5 R' M! S, {% K2 I
-
-
vue-router.js
63.76 KB, 下载次数: 2, 下载积分: 论坛积分 -2 分, 贡献值 -1 个, 好评度 -1 次
-
-
vue-2.0-simple-routing-example-master.zip
6.58 KB, 下载次数: 1, 下载积分: 论坛积分 -2 分, 贡献值 -1 个, 好评度 -1 次
| 欢迎光临 cncml手绘网 (http://bbs.cncml.com/) |
Powered by Discuz! X3.2 |