cncml手绘网

标题: Vue.js 路由 [打印本页]

作者: admin    时间: 2018-7-4 11:44
标题: Vue.js 路由
本章节我们将为大家介绍 Vue.js 路由。
Vue.js 路由允许我们通过不同的 URL 访问不同的内容。
通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。
Vue.js 路由需要载入 vue-router 库
中文文档地址:vue-router文档

安装1、直接下载 / CDN
  1. https://unpkg.com/vue-router/dist/vue-router.js
复制代码
( L7 E+ [3 s1 z* i2 g: S

9 ?' s% T5 g# D0 y/ ?  s) @+ |NPM
推荐使用淘宝镜像:
  1. cnpm install vue-router
复制代码
简单实例
Vue.js + vue-router 可以很简单的实现单页应用。
以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示:
HTML 代码
3 _4 r' F, y$ R7 U! H$ b9 V$ n
  1. <script src="https://unpkg.com/vue/dist/vue.js"></script>3 A' T( r+ X& n3 q8 O  o
  2. <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>: w9 J( m* ~" L. H$ ?* P, e) i

  3. / H, o3 |" B# c+ M' d$ x7 \+ r
  4. <div id="app">+ i' h% ~! W" U/ L1 u: k+ G5 S+ ]
  5.   <h1>Hello App!</h1>+ U3 L# l% _& g. |; I
  6.   <p>
    ; g. d. t' z6 d
  7.     <!-- 使用 router-link 组件来导航. -->! Y% W5 J3 O8 e" [1 T1 |) W; x
  8.     <!-- 通过传入 `to` 属性指定链接. -->% E) a$ e* u$ \( K! S2 D
  9.     <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->- d- N! i3 ~# L
  10.     <router-link to="/foo">Go to Foo</router-link>3 H+ s* R' q6 H4 u: o# n/ _
  11.     <router-link to="/bar">Go to Bar</router-link>
    % U* b! ]- E2 }! v
  12.   </p>* V: `. r' Q2 p* G: ~5 n1 @6 O
  13.   <!-- 路由出口 -->4 r- Z$ X- h/ d
  14.   <!-- 路由匹配到的组件将渲染在这里 -->5 h) I( ?0 U( I. N. l
  15.   <router-view></router-view>* Z7 U: s* J- p: U4 O4 G$ c
  16. </div>
复制代码
JavaScript 代码
  1. // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)% L! `0 a2 x' \$ S9 \8 o
  2. , j, j4 R2 y% ^+ M% `# R2 S
  3. // 1. 定义(路由)组件。
    + {- s( I/ _5 A: F% L
  4. // 可以从其他文件 import 进来# N# Q- I0 g2 k. f8 E# ~
  5. const Foo = { template: '<div>foo</div>' }; U4 c' ~5 B8 g
  6. const Bar = { template: '<div>bar</div>' }
    ; `+ r- r) u" c3 J+ X# L

  7. . R& }7 T/ {5 F& k& e
  8. // 2. 定义路由
    " p, y8 Q& Q6 ]$ k7 G4 w
  9. // 每个路由应该映射一个组件。 其中"component" 可以是
    - f0 _# a3 U8 N6 d9 [9 ^
  10. // 通过 Vue.extend() 创建的组件构造器,; A, W" a5 j' p6 s7 `% i9 V$ u
  11. // 或者,只是一个组件配置对象。
    ) |5 N; Q+ U' Y3 I+ n' B) u
  12. // 我们晚点再讨论嵌套路由。1 {) T' I1 g. D) {3 F7 k1 ~
  13. const routes = [3 z, h% K# _6 Z9 M# ~
  14.   { path: '/foo', component: Foo },; O, v$ K" u; }% O7 y7 d  N) a5 Q
  15.   { path: '/bar', component: Bar }& P, J" A8 K- `1 {2 L6 \
  16. ]! e8 M  w9 M) i4 _2 M9 _

  17. 0 D! r" H$ I# {7 V; m9 Z! P0 i: {- }
  18. // 3. 创建 router 实例,然后传 `routes` 配置
    8 a, `; ?: C* m* E  [/ u+ i
  19. // 你还可以传别的配置参数, 不过先这么简单着吧。
    & E% X7 Y6 F$ ?2 o$ T$ U
  20. const router = new VueRouter({7 o# b) |* A7 L! @+ Q  c. J9 z
  21.   routes // (缩写)相当于 routes: routes9 P' m+ G. Y9 i4 M
  22. })
    ) a) U& k0 t6 A  P( \. R# y

  23. * m9 F2 D2 S9 w$ r, V  {  R( r
  24. // 4. 创建和挂载根实例。  Y# \& n3 s# g. z% p5 N! D
  25. // 记得要通过 router 配置参数注入路由,
    ( ~& P, E. d" m. i# T& ]
  26. // 从而让整个应用都有路由功能
    7 E& {# L6 D1 ]- M) j9 g* {+ F0 z6 V
  27. const app = new Vue({; Y6 F4 ]/ M( Z% z) f: e8 X/ Y# H
  28.   router
    6 j! N4 ~$ Y! b& h0 ^
  29. }).$mount('#app'); u+ f8 R6 h% Q) D: \
  30. ' a, [% n  q: d2 z5 j" t. S' T/ v1 \
  31. // 现在,应用已经启动了!
复制代码
NPM 路由实例
接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码:

5 O+ M! R9 c: m9 B# I# r
你也可以在 Github 上下载:https://github.com/chrisvfritz/vue-2.0-simple-routing-example
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令:
  1. # 安装依赖,使用淘宝资源命令 cnpm) K! k; S1 q+ n% A/ f/ ]
  2. cnpm install, Y  |& K4 q5 {* i' z7 ]5 Q
  3.   ?* K$ f: ~8 ]' y* I0 @$ R6 z
  4. # 启动应用,地址为 localhost:8080! m. j0 E2 x7 q3 p5 r" |$ z
  5. cnpm run dev
复制代码
如果你需要发布到正式环境可以执行以下命令:& }8 F6 ]" H# }1 k( f1 q( ^
  1. cnpm run build
复制代码

/ @; l+ l' z7 Y# ?5 T4 P
0 O: h6 ?4 ]3 _/ ~% G8 J$ }& y" x4 ~

3 H# W4 M  x9 Y: e3 \
5 Y' r3 `, t9 O' M% l3 u3 G
( |2 V$ z* C% h6 V, @5 {2 X/ r2 U& m# j  o4 M& V! b+ q

! {( j$ l5 p$ l; a/ o2 K$ c4 ?
: a9 f3 M. z# ]: ?/ F& ^$ w. \
( ?# S3 I6 u; A- L1 O+ M$ T+ o: g9 i# ]8 [3 S

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://www.cncml.com/) Powered by Discuz! X3.2