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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 15631|回复: 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
复制代码
- d, v5 N: d. V
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

* l7 L8 E, ]' h. G; w8 i* F, {" {/ XNPM
推荐使用淘宝镜像:
  1. cnpm install vue-router
复制代码
简单实例
Vue.js + vue-router 可以很简单的实现单页应用。
以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示:
HTML 代码4 ^. K' ^2 s* S$ n
  1. <script src="https://unpkg.com/vue/dist/vue.js"></script>: R8 i! ]9 H$ {( c
  2. <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>
    / m% w, K. W0 O' ^

  3. 6 [% e$ w/ b* H' C7 k6 G9 S! @
  4. <div id="app">
    " _& x  @7 m+ i- i' f
  5.   <h1>Hello App!</h1>
    - t* A, H! I& [1 W. c$ G- L0 D
  6.   <p>, v* ], e/ D! Y' c+ c" Y2 A  y2 v% ^
  7.     <!-- 使用 router-link 组件来导航. -->; b* z% h( ]7 f/ V% t0 @' M
  8.     <!-- 通过传入 `to` 属性指定链接. -->
    ) P- W" i% ?/ O$ `9 e: F# P
  9.     <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
    9 {3 r, Q! U2 ~: ~  r4 v8 A8 S- {
  10.     <router-link to="/foo">Go to Foo</router-link>! r  q( s: v0 Z5 \+ {. ?/ Y
  11.     <router-link to="/bar">Go to Bar</router-link>& A0 U! N$ e4 Y
  12.   </p>! f' f  w3 w7 O6 g
  13.   <!-- 路由出口 -->* u1 d" V$ P0 M' D( b1 ^
  14.   <!-- 路由匹配到的组件将渲染在这里 -->! T; w; T$ F* e7 u5 t
  15.   <router-view></router-view>; l, ~. s' @" ^2 F
  16. </div>
复制代码
JavaScript 代码
  1. // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)
    , N* y% K- y: P+ z& ~  \6 d
  2. # M4 k; N0 y- [3 [8 G
  3. // 1. 定义(路由)组件。" E' T) \, i6 S4 L  _
  4. // 可以从其他文件 import 进来
    ' G% C) j; a3 ~# q" x6 O$ i. t
  5. const Foo = { template: '<div>foo</div>' }; z% D4 F' l/ {3 P
  6. const Bar = { template: '<div>bar</div>' }% \: Z& a9 q, h* _" u% n& [
  7. & B2 G% n1 x$ p. g( k1 U7 I
  8. // 2. 定义路由
    & m- c: {8 G" }; q
  9. // 每个路由应该映射一个组件。 其中"component" 可以是
    2 Y" K5 ]& r9 r. f# ~* z
  10. // 通过 Vue.extend() 创建的组件构造器,
    " h& e' K- O, C7 X5 p! \
  11. // 或者,只是一个组件配置对象。8 n7 J7 ?  N2 Q% Y- g9 E# C
  12. // 我们晚点再讨论嵌套路由。8 A) W1 ]. p; p3 |; ~& ]
  13. const routes = [, ?4 T; f- y: ~! Y
  14.   { path: '/foo', component: Foo },
    ) [* g6 D6 o2 @% v- U/ \
  15.   { path: '/bar', component: Bar }
    3 Q7 }& E7 J/ U1 f: e, q8 l0 |% `9 I5 F
  16. ]( y+ i1 b( e" e; k
  17. ; G" q7 a. `" w
  18. // 3. 创建 router 实例,然后传 `routes` 配置
    2 R- w; }; D  S; W
  19. // 你还可以传别的配置参数, 不过先这么简单着吧。5 _1 F1 ~9 c0 s4 C$ i
  20. const router = new VueRouter({: C) @, j! i  v# b1 L3 Y, N4 u
  21.   routes // (缩写)相当于 routes: routes# @7 d6 z, k3 J: _8 v+ N; E4 A4 B
  22. })
    ; X- L3 [- |( a4 _( ]* @4 z* B

  23. * w& B! m6 D, g# j8 T& S4 [
  24. // 4. 创建和挂载根实例。# r. x# y- T5 ~  _! J% W4 ^
  25. // 记得要通过 router 配置参数注入路由,
    ; G1 S+ C  {1 `. M: m; n
  26. // 从而让整个应用都有路由功能
    1 F* w( c, `) Z+ R( s" J
  27. const app = new Vue({
    3 @2 x6 A* ]: z  ~$ @' x
  28.   router- x% Y4 {# T7 ?6 \9 C: l: Z
  29. }).$mount('#app')
    " ~1 y/ ^$ K. u# b. Z0 e
  30. 3 }; h, w4 Y1 p
  31. // 现在,应用已经启动了!
复制代码
NPM 路由实例
接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码:
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

, \) S, M% d3 \5 z. T/ w
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令:
  1. # 安装依赖,使用淘宝资源命令 cnpm
    1 [$ u0 V" Q0 S$ X% p
  2. cnpm install% `/ S2 K' P) ]* E4 x

  3. & b9 `1 E! |, f( i
  4. # 启动应用,地址为 localhost:80801 t/ ~& c8 H, d+ `! \$ K5 G. n( t
  5. cnpm run dev
复制代码
如果你需要发布到正式环境可以执行以下命令:4 i3 ?/ Q/ ]9 t; ^
  1. cnpm run build
复制代码
; U% _; w* ]1 N

' l5 d. |' n3 T9 s
5 z# w! o( Q# [$ o  w% _6 N0 n
" M3 O; v, q) L5 ^; T6 M( g* u7 P; P1 H" ?* Z) l
' {' h9 ?' M% s6 W

8 U6 U6 ~7 P- ?* B% ^& w- F+ @9 z; ]

) R( z* V3 a% l, {& K
! Z- t, @5 l, \9 E& r* y- ?+ z$ t- ]6 a. o" u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 20:19 , Processed in 0.065479 second(s), 22 queries .

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