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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

& w% d9 f2 |$ a  R5 j
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

% B; |  u; k3 r3 tNPM
推荐使用淘宝镜像:
  1. cnpm install vue-router
复制代码
简单实例
Vue.js + vue-router 可以很简单的实现单页应用。
以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示:
HTML 代码
+ T* C5 ~) E  h! r
  1. <script src="https://unpkg.com/vue/dist/vue.js"></script>- }" I$ s$ ~( L# {3 \
  2. <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
    # H# `) Q: B  d7 r- @
  3. : a' }5 h, V  M# F+ Z4 Q# `
  4. <div id="app">
    4 j+ R/ ~7 V+ m) q8 q- v' g# s% ~
  5.   <h1>Hello App!</h1>
    " C7 a5 F4 L3 M* B' n
  6.   <p>
    * w7 t7 N- U* M
  7.     <!-- 使用 router-link 组件来导航. -->
    4 }6 w9 t2 m: e
  8.     <!-- 通过传入 `to` 属性指定链接. -->
    * v% h6 V5 i8 j
  9.     <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->/ u# q# G9 T5 ~+ L7 G3 T8 ]& t
  10.     <router-link to="/foo">Go to Foo</router-link>
    $ }6 |7 u8 o1 J# Q) n2 r, A& }' A/ |
  11.     <router-link to="/bar">Go to Bar</router-link>
    + O8 v5 P7 P/ \. n- J) b, c
  12.   </p>
    9 ^. ?3 M1 h3 |# Z
  13.   <!-- 路由出口 -->
    9 L5 E5 o/ ?  b8 ^4 ?7 h* l' ^1 M
  14.   <!-- 路由匹配到的组件将渲染在这里 -->
    6 @# Y* t- x1 F3 n* ]) v8 Y
  15.   <router-view></router-view>
    4 s) ]( R. U' C0 t" O1 S
  16. </div>
复制代码
JavaScript 代码
  1. // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)+ H3 y6 W9 |1 d4 p- X* p, X4 r

  2. 9 m! A. d+ Y5 Q1 [/ W
  3. // 1. 定义(路由)组件。
    0 o, i. t! \. x$ |
  4. // 可以从其他文件 import 进来
    5 N% @* U$ n4 P& _$ M+ D# Z
  5. const Foo = { template: '<div>foo</div>' }
    ) o0 x/ |7 {1 Y4 \0 I) @% U
  6. const Bar = { template: '<div>bar</div>' }  y- R5 |# E& s- f1 O

  7. " J& K6 Y% v# K1 G: h& r
  8. // 2. 定义路由
    * J5 o0 {# Z2 }( [! C3 o
  9. // 每个路由应该映射一个组件。 其中"component" 可以是! Z4 c+ f1 S% d
  10. // 通过 Vue.extend() 创建的组件构造器,/ `( n& J; a0 z8 g) C
  11. // 或者,只是一个组件配置对象。
    % |2 k3 r* L) x$ e) M
  12. // 我们晚点再讨论嵌套路由。
    : j+ Y: m+ D: W' U1 G" U6 v. m
  13. const routes = [
      |6 ~" r) u, ]  z; `
  14.   { path: '/foo', component: Foo },
    4 S& [" @' X! o
  15.   { path: '/bar', component: Bar }5 k& _' N9 l3 S, Q/ B7 f7 S0 A9 E% z
  16. ]  v( x! {# ^, O  u, D! U" s
  17. 6 {& a- ~- m5 ]% D
  18. // 3. 创建 router 实例,然后传 `routes` 配置
    0 [4 e4 B7 q1 s- u7 ~( i
  19. // 你还可以传别的配置参数, 不过先这么简单着吧。
    & `2 C& o# S# Q# k# f/ y1 g
  20. const router = new VueRouter({
    ( l; _$ A+ w, d. s
  21.   routes // (缩写)相当于 routes: routes
    ; l0 [8 s0 E5 s- M
  22. }). ^1 G& Z$ H* k

  23. : M" [4 s3 U- L3 R4 v+ ]
  24. // 4. 创建和挂载根实例。7 h& [2 e& H+ Q1 ^9 [" H
  25. // 记得要通过 router 配置参数注入路由,7 Z2 ^! h( C% y( d# I% F; A6 n
  26. // 从而让整个应用都有路由功能
    ( t' b# g2 ]7 `9 j& Y
  27. const app = new Vue({$ L6 P( `' {, Z% t6 ^4 f+ m
  28.   router
      X% B" D0 f: b0 W' Y. p- f% u( \
  29. }).$mount('#app')! H1 M+ u' [1 h' x- d0 J

  30. : y3 }1 _' i6 ^* z$ S! r
  31. // 现在,应用已经启动了!
复制代码
NPM 路由实例
接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码:
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
! U% ^/ X: q8 R. `& I, i5 s
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令:
  1. # 安装依赖,使用淘宝资源命令 cnpm
    4 ?- ~. p1 f, y0 n
  2. cnpm install
    3 [1 x% p- J, v3 f- e+ E

  3. # O: g$ W# T% [: q. l. o4 x
  4. # 启动应用,地址为 localhost:8080
    % g) X4 N/ x- |& ~; R- J* |& R
  5. cnpm run dev
复制代码
如果你需要发布到正式环境可以执行以下命令:: {3 z- ]9 X* M0 A* w- `( Z& W% V# v
  1. cnpm run build
复制代码
4 j4 s# \/ @8 q( ]. z( r8 G) \- Q

* `6 K# h; ?3 u* Z" I1 o3 [% n
) y9 G! F* g0 F  V1 B, @
5 t/ N8 l1 r) P% J0 E& l: a. X* s$ Z; `/ B( }  H- f" [- @

# ]: P7 f. v8 m) n/ e0 Z6 v; H9 j" p/ l

1 e+ |  K' f% q. p7 H2 d. X' F' V( E% [2 \) R1 X
3 B2 I, e" |* i7 n4 _. O# v) ~1 P( r
; E+ ?3 c# L9 R0 w5 y# s0 J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 13:36 , Processed in 0.058121 second(s), 22 queries .

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