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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

" F4 G7 i' W. W4 l
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0

. ]2 m4 B- H1 n* K6 i& ?8 X- tNPM
推荐使用淘宝镜像:
  1. cnpm install vue-router
复制代码
简单实例
Vue.js + vue-router 可以很简单的实现单页应用。
以下实例中我们将 vue-router 加进来,然后配置组件和路由映射,再告诉 vue-router 在哪里渲染它们。代码如下所示:
HTML 代码, ~9 t& K/ t) p$ u
  1. <script src="https://unpkg.com/vue/dist/vue.js"></script>; A7 P8 e! I: s
  2. <script src="https://unpkg.com/vue-router/dist/vue-router.js"></script>  c8 ^# E7 q$ c- w, V  [" ]

  3. ) C/ F' ^* i7 b) y2 W0 @5 w
  4. <div id="app">
    + Q- D* [8 I- H+ W# h) e; B
  5.   <h1>Hello App!</h1>
    . @5 G1 q8 r2 o' K
  6.   <p>
    % @: m3 |1 ~. ?1 D  a
  7.     <!-- 使用 router-link 组件来导航. -->; z2 L2 T1 j! o; u9 f! T* \
  8.     <!-- 通过传入 `to` 属性指定链接. -->0 N$ a% [' k- W) h/ d  |
  9.     <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
    0 f% E, i9 O' L. L# h5 y5 W
  10.     <router-link to="/foo">Go to Foo</router-link>
    4 F' v& Z  N: ^
  11.     <router-link to="/bar">Go to Bar</router-link>
    ' |0 d$ r: b; C" m. @- g* y' L
  12.   </p>7 r. e( l" U; P  x% X% }- r* X. l
  13.   <!-- 路由出口 -->) a: X! V- q. w7 g7 d  [0 Y# R
  14.   <!-- 路由匹配到的组件将渲染在这里 -->' g- g0 k8 ?  T; g$ _% g
  15.   <router-view></router-view>
    1 J8 A) I# Z$ X2 j% [
  16. </div>
复制代码
JavaScript 代码
  1. // 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)  [6 Q1 m: `* E6 a  m% h

  2. ; E0 M# K. t8 I/ j# {- L, s
  3. // 1. 定义(路由)组件。/ N* U/ X9 v, |2 T+ [
  4. // 可以从其他文件 import 进来
    - J5 u9 W- C' @# c1 w% ~
  5. const Foo = { template: '<div>foo</div>' }
    " d' f/ D8 x  B7 U" y4 G
  6. const Bar = { template: '<div>bar</div>' }( j+ ]- U* ?3 U0 q7 H
  7. ' o$ }: X, _5 A- \  z: H1 E
  8. // 2. 定义路由
    ( F8 G( a9 J! t! ^' }# g( d
  9. // 每个路由应该映射一个组件。 其中"component" 可以是
    $ O) q. l  X3 A) h0 Y6 J
  10. // 通过 Vue.extend() 创建的组件构造器,7 S0 \" o6 Q2 [# t3 {) |
  11. // 或者,只是一个组件配置对象。+ ~, t3 ^( p% z3 S  W9 L2 z
  12. // 我们晚点再讨论嵌套路由。  }2 f5 b# |  h$ I& M, c! X6 V" s
  13. const routes = [
    # @- ]( ^% q* H3 l
  14.   { path: '/foo', component: Foo },  N8 r& O& a( q) Q; O5 W3 a
  15.   { path: '/bar', component: Bar }
    & e% F  w5 s  K; w: |& w) ^
  16. ]
    2 F& O" p% ?# R5 n7 M5 m" D
  17. 2 _# r5 [( N% ^- S3 b1 p& D$ ]
  18. // 3. 创建 router 实例,然后传 `routes` 配置
    " ?( j$ x( x7 ~4 o( K, V5 p2 g
  19. // 你还可以传别的配置参数, 不过先这么简单着吧。
    4 `2 R6 k! E) k' @& M
  20. const router = new VueRouter({! T) B4 Q. e. D" J4 R' T2 a6 d
  21.   routes // (缩写)相当于 routes: routes8 W5 Z9 a; z5 \& K0 H8 [5 ?
  22. })7 R* D# H3 p) {( H& _5 x
  23. ( P9 O/ i, R# O' |( I9 r7 w
  24. // 4. 创建和挂载根实例。5 c0 J0 \9 I- W- V: v& d+ f
  25. // 记得要通过 router 配置参数注入路由,% |! Q; ^1 l4 x* Z
  26. // 从而让整个应用都有路由功能
    . q! R+ W) a" K/ Z
  27. const app = new Vue({
    2 k: [: L+ F% \' I7 a: z
  28.   router- [5 ?+ P  ^# j; v8 ?
  29. }).$mount('#app')! R; p8 n1 k: S+ f& `
  30. # c0 X4 b/ x7 u- N) d3 T
  31. // 现在,应用已经启动了!
复制代码
NPM 路由实例
接下来我们演示了一个使用 npm 简单的路由实例,开始前,请先下载该实例源代码:
游客,本帖隐藏的内容需要积分高于 1 才可浏览,您当前积分为 0
& @; ?. N+ c  T; N7 u* A& Q
下载完后,解压该目录,重命名目录为 vue-demo,vu 并进入该目录,执行以下命令:
  1. # 安装依赖,使用淘宝资源命令 cnpm
    # ]! x$ v  K4 F. z
  2. cnpm install
    5 C9 L. n" x6 n: R8 S% o' R
  3. - h  X- a) [, ]2 C/ B1 @
  4. # 启动应用,地址为 localhost:8080
    , r. w' q3 j) `( \
  5. cnpm run dev
复制代码
如果你需要发布到正式环境可以执行以下命令:
+ _' x1 W1 C3 }6 s+ j
  1. cnpm run build
复制代码
& y% ^8 G  L' }& F7 p

6 X- j' z1 _* L+ S' \
' V* p+ U2 a: K  m, ]& B* T* j2 Z- s9 I2 ~$ p8 `3 y
% c0 h+ O/ H$ v  ]4 k# A7 e

& X6 G  a+ ?1 c# {& s* ~9 z9 z; X+ _, d: o6 Q+ P

  d' Z5 a$ k8 g4 N6 S" q
; k. N! X4 r& T3 J7 k/ ], X3 p2 s- Y1 h- k1 d# K) N7 Y& @

. x" b/ P2 O2 U7 n! b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-19 14:13 , Processed in 0.151175 second(s), 24 queries .

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