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
复制代码 6 f# c' v \* {0 `6 L, W* B
5 E( q6 J5 h% n5 S$ q- h5 GNPM推荐使用淘宝镜像:
简单实例Vue.js + vue-router 可以很简单的实现单页应用。
以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示:
HTML 代码
; E( q1 ]0 B9 ^$ T9 x- <script src="https://unpkg.com/vue/dist/vue.js"></script>- P; w- c( G F' F1 Q6 V2 G
- <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>" v! `, G. F4 K2 ]& d+ H O2 ~3 w
-
% b0 f8 u" P& o& Z U+ k$ U( C$ A3 r - <div id="app">. U) z& [: o E+ ?
- <h1>Hello App!</h1>7 C4 s6 W, E6 N3 T& j) Q
- <p>, O& A/ ]( l4 {
- <!-- 使用 router-link 组件来导航. -->! S% S+ {! x1 [3 K8 o
- <!-- 通过传入 `to` 属性指定链接. -->
- J2 x" D" G# d1 k" R5 M# `$ @ - <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->7 t7 X* r: Q' Q* \' @% i9 C
- <router-link to="/foo">Go to Foo</router-link>7 T$ E9 ` p; e, a9 z' }5 L
- <router-link to="/bar">Go to Bar</router-link>' y( H5 L/ D. \* e( }
- </p># I) p5 |8 R" j. |9 I6 D& w" I* k
- <!-- 路由出口 -->. h' F# y9 j4 S1 e2 v! d3 W
- <!-- 路由匹配到的组件将渲染在这里 -->! _. n0 d* x \5 b- d
- <router-view></router-view>
0 t5 Q1 r- [& x+ Q' ^! e4 w3 L - </div>
复制代码 JavaScript 代码- // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)
# _6 {5 Y# N, N) M; g( \. G -
& O% Y4 C7 `7 p- R! {( L% U/ Q - // 1. 定义(路由)组件。
V3 H9 @9 T: ]4 m; \ - // 可以从其他文件 import 进来
) m) _$ Z7 g5 f+ ~ - const Foo = { template: '<div>foo</div>' }
1 x6 T6 P/ w, V( t2 g- I. ^ D F& q - const Bar = { template: '<div>bar</div>' }
- s: C: z# B; m# ?; N) Z- X# P- f - ' X, v3 t) ]" h' d+ _2 V
- // 2. 定义路由
" x- a$ t3 g# n- N2 O* f2 _) }. @5 R - // 每个路由应该映射一个组件。 其中"component" 可以是& X' ~, H$ A- _5 M4 E
- // 通过 Vue.extend() 创建的组件构造器,6 W" J; {8 @6 v3 b3 I4 E
- // 或者,只是一个组件配置对象。
+ v, a' F; ]% k9 [: ^; h. O3 z - // 我们晚点再讨论嵌套路由。# U3 u& q, `) C8 Z' e2 k0 A
- const routes = [% f. c* p6 V5 m6 q5 V& D* T
- { path: '/foo', component: Foo },1 J4 b; x) r r/ j3 q$ x7 l) i+ T
- { path: '/bar', component: Bar }
( I- Q0 |4 X. Y; G0 ~0 l2 Q. n( t - ]
5 u" Y5 C. n* E, I6 S - ; G* @' N! `6 U# v% l
- // 3. 创建 router 实例,然后传 `routes` 配置8 I1 f3 a. y5 Y, q" p
- // 你还可以传别的配置参数, 不过先这么简单着吧。
# Y& v/ t) k$ K( ?! L: D | - const router = new VueRouter({
2 Q+ ~, U; S. s4 l6 u. x% ^ - routes // (缩写)相当于 routes: routes
! o! R( P" s7 L% g5 |& w - })0 d: U( `; y; p/ s
- 3 Y- }7 y$ b' w. U, m) t( U
- // 4. 创建和挂载根实例。
- L! o4 T% ]$ r/ O1 w8 R - // 记得要通过 router 配置参数注入路由,6 j6 G4 G/ X4 I+ s4 J' q1 X' [
- // 从而让整个应用都有路由功能4 w5 }9 n4 B+ o# L: R" _1 H* j
- const app = new Vue({* ?) b# D4 L) B, c1 B
- router4 j3 _2 ]" `* {: I, C3 D- a' {
- }).$mount('#app') O9 R* p6 A1 q6 A
-
0 G1 o( g1 `0 [9 z* X - // 现在,应用已经启动了!
复制代码 NPM 路由实例接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码:
5 J: [5 T/ e1 j5 S$ d/ B下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令:
- # 安装依赖,使用淘宝资源命令 cnpm
, |2 W x/ X/ A - cnpm install
2 T& v0 R& x9 c8 y' ~7 u
* g1 w+ i: H! O2 T% H0 [/ E1 f- # 启动应用,地址为 localhost:8080
% H! i2 i. f: X+ c& H - cnpm run dev
复制代码 如果你需要发布到正式环境可以执行以下命令:
, G7 d6 y) ?( O5 A% S3 k
7 e: q; F( ~/ l2 U7 x( I$ f! a8 @- u A7 V( K
6 L$ ]: u A% c
) @- A1 g) z- I" H
# ?- T( H: O. A0 l1 u) c* q5 [0 @' b
% N7 [3 c. l' G
( ^7 p+ z/ [1 P' H' w5 N. n! |7 F1 e$ H
: c( u3 ~' J5 g; ~/ A. h3 O
( x% V; D0 e0 P% H
-
-
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 |