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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 15482|回复: 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
复制代码

, a' ]; V) Z% E0 H* S
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
3 H/ [: w0 m/ B% |2 Q8 ^5 Y  L
NPM
推荐使用淘宝镜像:
  1. cnpm install vue-router
复制代码
简单实例
Vue.js + vue-router 可以很简单的实现单页应用。
以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示:
HTML 代码, X/ v5 @2 u' Z5 o  \9 }
  1. <script src="https://unpkg.com/vue/dist/vue.js"></script>
    / k7 `$ y# H2 x" }" Y) B
  2. <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
    + M; e' E/ {7 X- r7 H0 I  |

  3. ! ~, Z6 N5 y& I% @2 ~( C
  4. <div id="app">4 M- p/ x0 a  I
  5.   <h1>Hello App!</h1>
    8 N' Q" J* m+ ~. o  ]
  6.   <p>
    ( C1 R0 W: g& A/ G1 z: e) E$ ~8 M: n
  7.     <!-- 使用 router-link 组件来导航. -->/ z& I4 V% ^2 u* ^
  8.     <!-- 通过传入 `to` 属性指定链接. -->/ P3 L# j' P4 S( @/ D
  9.     <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->/ Q7 Y- O" R  ]! O9 J
  10.     <router-link to="/foo">Go to Foo</router-link>
    8 c5 y0 H: j0 I* F6 B  B$ d" U
  11.     <router-link to="/bar">Go to Bar</router-link>! b% M+ l  O! Y
  12.   </p>1 o3 A/ R# t9 Z/ c- H
  13.   <!-- 路由出口 -->- U0 c  D; j7 G7 ?6 ]
  14.   <!-- 路由匹配到的组件将渲染在这里 -->; n% c# d# l3 d7 S* ~+ f
  15.   <router-view></router-view>! {3 {" V1 a3 }' T  n$ H! B
  16. </div>
复制代码
JavaScript 代码
  1. // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)1 l0 r9 d" \1 O) b% `* ^5 T8 \

  2. 0 y1 J! \- m5 O  Q$ \
  3. // 1. 定义(路由)组件。: P3 S' F9 X3 }$ a* r# a8 k
  4. // 可以从其他文件 import 进来
    9 [( h0 p8 I4 K. Y; F" a3 ~
  5. const Foo = { template: '<div>foo</div>' }
    4 E" ~$ w. z! s. h: E
  6. const Bar = { template: '<div>bar</div>' }
    3 g9 O' J/ P/ S
  7. 5 T7 f( k5 o, C& F( T5 O
  8. // 2. 定义路由( v  @! }2 R4 U9 {: n4 O
  9. // 每个路由应该映射一个组件。 其中"component" 可以是. M# R% F' p& `; X8 E/ A
  10. // 通过 Vue.extend() 创建的组件构造器,
    : |7 ]+ N$ W8 b4 c& M- U" P1 g
  11. // 或者,只是一个组件配置对象。
    7 t6 c  }# u, P$ I: L  z7 x- L: R. a
  12. // 我们晚点再讨论嵌套路由。8 G( S# z' z& o$ N3 `$ y
  13. const routes = [& ~5 q/ i( F) @; X
  14.   { path: '/foo', component: Foo },
    9 o! y- Q0 D. h
  15.   { path: '/bar', component: Bar }
    8 x! _# r" z5 b6 u7 n: e5 x
  16. ]2 m. _8 K0 v" R8 W2 o
  17. 9 B! b8 H# {% D  o! d' _3 K' p
  18. // 3. 创建 router 实例,然后传 `routes` 配置9 k: q; p+ a6 E$ G/ T  [
  19. // 你还可以传别的配置参数, 不过先这么简单着吧。
    & ~7 G- u7 n6 l. N
  20. const router = new VueRouter({! l- D3 i, K4 c  `" W9 g
  21.   routes // (缩写)相当于 routes: routes
    9 X! i, y0 u4 E! Z9 o
  22. })6 N. I* q- I3 b1 ?* A" T$ F; ]
  23. 6 K' \+ j+ ?  Y
  24. // 4. 创建和挂载根实例。
    9 k7 }9 F# D4 s9 p: z; f9 F9 A9 C* ~
  25. // 记得要通过 router 配置参数注入路由,5 c4 ?( a! M' O  q) T7 ~. _% _+ D
  26. // 从而让整个应用都有路由功能* X0 d* }6 _, Y1 O; ~
  27. const app = new Vue({3 a) N8 J: h( L" m
  28.   router
    - B# X  _! }6 ]
  29. }).$mount('#app')
    7 c9 a) F+ i  D  m  V
  30. ! V  Q- g% N1 R, d
  31. // 现在,应用已经启动了!
复制代码
NPM 路由实例
接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码:
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

# }) X4 l9 f  k
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令:
  1. # 安装依赖,使用淘宝资源命令 cnpm
    ; h" o8 N0 d- o9 @! g1 O  O3 ^
  2. cnpm install2 P& f# ?# H3 S- D$ @
  3. / {6 q7 j& u$ i. E: t& M
  4. # 启动应用,地址为 localhost:8080$ a' m9 I8 ~% \6 z
  5. cnpm run dev
复制代码
如果你需要发布到正式环境可以执行以下命令:
0 p. t  y# \% j. y! H
  1. cnpm run build
复制代码
- p4 G* ?. J. ]- y/ D
/ @! ^% w. ^( V0 I! u# y
, c4 ?$ M" |+ R

8 H6 r# k. Y% l
, L. Q6 O/ J5 x; _9 |$ c3 P+ K# H  J+ d) r: a/ f9 A7 h+ U, z
7 v$ L  z2 S6 ]

2 K  @+ d) D  J* J0 {. s" T9 k& }$ I, ]9 L" D( ?, U
- Z5 T: x: e. A8 q  C- I
2 v' b3 n$ Z. m2 _$ z* F9 p/ f3 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 15:59 , Processed in 0.055758 second(s), 22 queries .

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