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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 16547|回复: 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
复制代码
) e4 J9 U* _5 e# P$ J1 L" d# G3 r
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
/ m& u! w3 E  t
NPM
推荐使用淘宝镜像:
  1. cnpm install vue-router
复制代码
简单实例
Vue.js + vue-router 可以很简单的实现单页应用。
以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示:
HTML 代码
1 I" x( S5 M) A" {9 b
  1. <script src="https://unpkg.com/vue/dist/vue.js"></script>
    5 m& S& p4 f$ ?
  2. <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>: n7 d4 Y0 G& C* c3 A+ d

  3. / q! U0 F, a# w. [
  4. <div id="app">
    + ?) h3 ]/ M! c% ^; ~( D; x
  5.   <h1>Hello App!</h1>
      {* i& u) k. p# v
  6.   <p>7 k$ {, s, R. j9 w
  7.     <!-- 使用 router-link 组件来导航. -->
    4 Z! S6 @* }2 ?8 T) a9 u8 d
  8.     <!-- 通过传入 `to` 属性指定链接. -->' d; }8 Z" |5 r% E9 r6 t
  9.     <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->6 E' G& d7 q, E; T' U: \. l( `
  10.     <router-link to="/foo">Go to Foo</router-link>5 \' Y* d) {& p
  11.     <router-link to="/bar">Go to Bar</router-link>
    6 c3 A; Y$ M) n8 W
  12.   </p>$ p( ]9 e6 a6 {) \* `: r) N
  13.   <!-- 路由出口 -->. E6 k) o3 i7 h" {
  14.   <!-- 路由匹配到的组件将渲染在这里 -->- i+ @8 g! u# _3 x, M& R+ Z
  15.   <router-view></router-view>
    0 {4 R1 q2 v) x5 c1 {
  16. </div>
复制代码
JavaScript 代码
  1. // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)
    3 ]9 s1 O2 F, c8 D$ R# L
  2. 5 ?' @2 d$ T4 p( M
  3. // 1. 定义(路由)组件。$ m, E, l0 y  B6 O; B; Q
  4. // 可以从其他文件 import 进来( M9 @0 {- m0 t2 B0 l0 e) |% N: q
  5. const Foo = { template: '<div>foo</div>' }& k% w4 l2 ^1 G% e0 p7 J" M, L
  6. const Bar = { template: '<div>bar</div>' }/ b' h1 p. Z: Q( x/ I+ B! Z& j
  7. 3 q5 C0 q% R; D
  8. // 2. 定义路由
    / t& r" S7 F4 C) r* M& D" H
  9. // 每个路由应该映射一个组件。 其中"component" 可以是
    7 _* x  m% n- s
  10. // 通过 Vue.extend() 创建的组件构造器,7 p" f  B7 Z8 M0 L: B; o
  11. // 或者,只是一个组件配置对象。
    " n1 v, u( T3 Q! ?: @7 [! W/ L
  12. // 我们晚点再讨论嵌套路由。
    ; s; Q$ }& J. q6 f4 \* B
  13. const routes = [+ z" o+ a  U: K) M
  14.   { path: '/foo', component: Foo }," P' Y  ^" Q# q2 l" v, ^
  15.   { path: '/bar', component: Bar }
    " d5 b8 y4 q6 s
  16. ]
    + r5 }# L2 K# q3 Q+ L( U' z% s' g) r
  17. 2 Z! S/ ]2 o( Z! o3 c8 L
  18. // 3. 创建 router 实例,然后传 `routes` 配置
    5 m" i8 ?( C/ r1 L3 i/ V. y  G2 h" I
  19. // 你还可以传别的配置参数, 不过先这么简单着吧。
    9 E. B% s: f5 j& T; x( e, n
  20. const router = new VueRouter({# T: w! Q, s: ]4 j8 ?7 c
  21.   routes // (缩写)相当于 routes: routes
    4 y1 j* A- Y/ e  j; t0 O9 P
  22. })
    / i6 u, d- K" h3 C5 {4 O. `% O

  23. ; [$ n: F/ _" ]+ X; d) @
  24. // 4. 创建和挂载根实例。
      t7 J, Y2 b5 `3 E6 P. W+ w5 I
  25. // 记得要通过 router 配置参数注入路由,
    , _" g8 W) z* W4 F6 P: o
  26. // 从而让整个应用都有路由功能9 e) ?! X' d/ Y9 t' B  b5 C5 ]* @# A
  27. const app = new Vue({
    ( I) o; ]) C% h$ Z' _
  28.   router! N- `6 `; I) k# I7 ]
  29. }).$mount('#app')0 y* N: P# P  P/ u; \3 T* q
  30. 3 S0 y; {( j6 A1 o
  31. // 现在,应用已经启动了!
复制代码
NPM 路由实例
接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码:
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
# Y$ k) K! D* ?/ c
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令:
  1. # 安装依赖,使用淘宝资源命令 cnpm
    4 T- \. I7 n* X/ j2 b
  2. cnpm install- E. F6 q+ A) V4 ]1 |

  3. 3 l; I+ j2 @- @
  4. # 启动应用,地址为 localhost:8080
    + O- N1 |$ M# C3 [. C
  5. cnpm run dev
复制代码
如果你需要发布到正式环境可以执行以下命令:9 _3 g' p# F! C' U& ~" ^2 A+ q4 N
  1. cnpm run build
复制代码

" l! w) P# L" @! p( t5 x, u
, y* `( R8 W$ X+ D% Q( e. a9 e# L9 a
9 z7 c# ~7 {* G7 x

, C# P6 m) G0 Q, t2 W$ v6 u5 E! H" r
) C& {; U* u* E
" [* K# b% V) |. x
8 t& g% N' [; l. Y/ r

- ^4 e9 w2 m! [$ F$ N& S+ F9 k& U4 i$ T5 y* ]% ]5 b- e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 13:37 , Processed in 0.086769 second(s), 23 queries .

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