您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12396|回复: 0
打印 上一主题 下一主题

[Vue.js] Vue.js 路由

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-4 11:44:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本章节我们将为大家介绍 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
复制代码
! |, ~% @* T8 w! p1 O2 K
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

' {1 f: c* i0 d% ^, iNPM
推荐使用淘宝镜像:
  1. cnpm install vue-router
复制代码
简单实例
Vue.js + vue-router 可以很简单的实现单页应用。
以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示:
HTML 代码" ]& |6 s6 }* x5 h! T& W
  1. <script src="https://unpkg.com/vue/dist/vue.js"></script>
    + W$ ~4 k4 E2 n  W- }5 T3 E2 A
  2. <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>1 T. ^$ o) v" d4 x! K
  3. 1 W) ]" x/ j* j
  4. <div id="app">
      D" E+ J) c4 K; Q
  5.   <h1>Hello App!</h1>
    " F+ y2 R' b. ~# ?, p+ [7 M* {
  6.   <p>
    % r$ H: f1 |- j' E- A6 X; B' I" Y1 z
  7.     <!-- 使用 router-link 组件来导航. -->
      k. G# `( F( Z9 U  Q3 v! G+ P
  8.     <!-- 通过传入 `to` 属性指定链接. --># g0 l0 N$ c: z1 m' Y
  9.     <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->, {' J$ }1 v' B* ~  F% g! Y) ~
  10.     <router-link to="/foo">Go to Foo</router-link>
    7 e+ m) `7 ^- H5 _8 V
  11.     <router-link to="/bar">Go to Bar</router-link>' b, Z8 _  ]& C9 r9 m
  12.   </p>
    9 |7 ~( [4 h1 ]5 D3 @! q4 p
  13.   <!-- 路由出口 -->: _7 F+ N0 K: ?3 k
  14.   <!-- 路由匹配到的组件将渲染在这里 -->% m% R+ X& u" v& Q: H: ^" z, I
  15.   <router-view></router-view>
    / `: m4 U" F: t( O2 |7 b
  16. </div>
复制代码
JavaScript 代码
  1. // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)
    1 c9 u5 K* y' p& ]& ~% G! `9 i) w9 S
  2. / o7 E2 _  a3 F. v% Y
  3. // 1. 定义(路由)组件。
    0 c4 N, i" m  g9 J9 O" W
  4. // 可以从其他文件 import 进来
    3 D% f5 v% _* u, x1 c. r
  5. const Foo = { template: '<div>foo</div>' }
    3 O1 O5 t" Y9 E+ n/ T
  6. const Bar = { template: '<div>bar</div>' }' ^& \) H4 @* d8 ~" c0 ?4 H; D0 k

  7. 2 v' K1 X' Q5 G0 V4 p( O
  8. // 2. 定义路由
    : P! i" Q% A( \% `. S. B
  9. // 每个路由应该映射一个组件。 其中"component" 可以是
    # l1 }* a; O  u9 P5 @/ N
  10. // 通过 Vue.extend() 创建的组件构造器,+ K) L" X' {$ b0 l$ q* k' ^" m4 Z6 n
  11. // 或者,只是一个组件配置对象。# P1 `- U; d0 z4 ^& c
  12. // 我们晚点再讨论嵌套路由。# ^+ s# ^! |3 Y( l
  13. const routes = [
    % {9 [) J6 D1 Q& V/ w
  14.   { path: '/foo', component: Foo },
    + w8 W+ P+ g$ E% N1 q
  15.   { path: '/bar', component: Bar }( h/ p) |. `# J9 Z
  16. ]
    % P1 J, F* ]$ W$ g: F
  17. 4 ]& s; g+ I; G" ^! T" |  {+ V
  18. // 3. 创建 router 实例,然后传 `routes` 配置
    - s4 v9 A. w3 h/ K
  19. // 你还可以传别的配置参数, 不过先这么简单着吧。
    4 \- q% t9 ~" P4 W: N! w5 m
  20. const router = new VueRouter({5 q- K; \, e9 T1 V9 b. t5 ~% x
  21.   routes // (缩写)相当于 routes: routes5 ~5 v& p: P- W
  22. })
    $ K* ], v9 K% M0 o5 I

  23. 8 O% I- Z8 ?4 l5 h, p9 u
  24. // 4. 创建和挂载根实例。0 O9 B. u3 G6 C& W/ C* C
  25. // 记得要通过 router 配置参数注入路由,
    4 r8 n* V6 P8 }" n  g: }% w
  26. // 从而让整个应用都有路由功能
    # Q/ X/ Z6 L1 P5 e% Y; [. h
  27. const app = new Vue({; p& T  _! X6 V  B/ O9 ^) p* P
  28.   router
    ! b8 s$ \, P: h: }" J( ]) n* u
  29. }).$mount('#app')& N0 y$ b! l% O6 d8 X

  30. - f0 d0 j. K  N0 K1 I
  31. // 现在,应用已经启动了!
复制代码
NPM 路由实例
接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码:
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
% X- b. }3 y9 W. L
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令:
  1. # 安装依赖,使用淘宝资源命令 cnpm; j" X7 E9 ~7 W
  2. cnpm install2 t# v  w) E7 r7 K8 {3 l7 A3 U7 l

  3. & O9 a% a7 P! r% m2 s, J3 L
  4. # 启动应用,地址为 localhost:8080: r8 |& m  R3 x3 `+ i: R
  5. cnpm run dev
复制代码
如果你需要发布到正式环境可以执行以下命令:
/ S2 j( }# ^& |0 x/ p
  1. cnpm run build
复制代码

6 z6 {1 f" ^0 I3 h( v/ ]# Y2 T  R
' P' Z* L6 k& U! ?- e
* H1 @& }2 U5 k8 I, C1 R
2 F2 L( {' a* `" l# y! @: b
# ]+ n3 i7 P5 i" |' f6 t' s$ A3 ^* o( U' |% q
  B8 R9 w+ \7 t4 c3 c

  Y3 m* d! ]: x) m
7 S) y  ?2 b3 q( w- D( o2 N/ }
- C* J' {* X. K/ ?! F9 i. P& [- r
* M& v/ ]4 j; D" `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 15:49 , Processed in 0.110009 second(s), 22 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!