今天更新晚了点,因为刚刚去参加面试回来;不多说废话了,今天主要看的是路由,当然因为 Vue Router 本身已经可以写很多内容了,所以我倾向于把基础内容放在这里,路由单开一部分来详细看看。


1 简单路由

路由是什么呢?

在计算机领域,路由其实就是根据指定好的规则,将一类访问导向至规则对应的地址的动作。

所以网络设备当中有硬件的路由器(其实就是简化版本的计算机,搭配路由软件);而 Vue.js 的路由,允许我们通过不同的 URL 访问不同的内容,所以原理上是一致的。

如果我们只需要非常简单的路由而不想引入一个功能完整的路由库,可以像这样动态渲染一个页面级的组件:

const 

结合 HTML5 History API,就可以建立一个麻雀虽小但是五脏俱全的客户端路由器。

官方提供了一个完整的例子:vue-simple-routing-example

2 第三方路由

如果在接触 Vue.js 之前已经使用习惯了某路由,也可以很容易的整合到 Vue 项目当中来,比如 Page.js 或者 Director 都是不错的选择,这里有个使用 Page.js 的范例:

main.js

import 

routes.js(简单的路由):

export 

layouts/main.vue(路由主体):

<

components/VLink.vue(链接组件):

<

pages/Home.vue(首页):

<

pages/About.vue(关于页面):

<

pages/404.vue(错误页面):

<

上面这些内容共同组成了这个简单的路由应用,效果如下:

3 官方路由

先来一段官方介绍:

Vue RouterVue.js 官方的路由管理器,它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。

包含的功能有:

  • 嵌套的路由/视图表
  • 模块化的、基于组件的路由配置
  • 路由参数、查询、通配符
  • 基于 Vue.js 过渡系统的视图过渡效果
  • 细粒度的导航控制
  • 带有自动激活的 CSS class 的链接
  • HTML5 历史模式或 hash 模式,在 IE9 中自动降级
  • 自定义的滚动条行为

当然这个有点太官方,其实可以看成就是 Node.js 专门提供的一个路由组件,我们可以直接拿来用就好。

Vue.js + Vue Router 创建单页应用,是非常简单的,使用 Vue.js ,我们已经可以通过组合组件来组成应用程序,当要把 Vue Router 添加进来的时候,我们需要做的是,将组件(components)映射到路由(routes),然后告诉 Vue Router 在哪里渲染它们。

下面是官方提供的例子:

HTML:

<

JavaScript

// 0. 如果使用模块化机制编程,导入Vue和VueRouter,要调用 Vue.use(VueRouter)

通过注入路由器,我们可以在任何组件内通过 this.$router 访问路由器,也可以通过 this.$route 访问当前路由:

// Home.vue

该文档通篇都常使用 router 实例,不过需要留意一下 this.$routerrouter 使用起来完全一样,一般使用 this.$router 的原因是我们并不想在每个独立需要封装路由的组件中都导入路由。

这里有个比较完整的例子(使用 CDN 并未使用模块化方式):

<!DOCTYPE html>

要注意,当 <router-link> 对应的路由匹配成功,将自动设置 class 属性值 .router-link-active,可以查看 API 文档 学习更多相关内容。

vue each_Vue.js从零开始——模块化项目(2)相关推荐

  1. Vue.js 学习笔记十二:Vue CLI 之创建一个项目

    目录 创建一个项目 创建一个项目 运行以下命令来创建一个新项目: vue create vuecli-demo 你会被提示选取一个 preset.你可以选默认的包含了基本的 Babel + ESLin ...

  2. vue router children 路由变了 组件没变_Vue.js从零开始——路由(2)

    因为一些原因,我断更了几天时间,因为要准备面试 + 不在家,抱歉大家! 题图是一个大概的 Vue 模块化项目组成,当然因为我从网上找的,所以可以忽略当中的 Bulma,这其实是一个 CSS 框架,往简 ...

  3. vue导入非es6 js文件_Vue项目兼容IE11

    Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性.但对于 IE9+,Vue 底层是支持. 由于开发过程中,我们经常会使用一些第三方插件或组件 ...

  4. 转载: 我如何使用 Django + Vue.js 快速构建项目

    原文链接: https://www.ctolib.com/topics-109796.html 正文引用如下 引言 大U的技术课堂 的新年第一课,祝大家新的一年好好学习,天天向上:) 本篇将手把手教你 ...

  5. Vue项目开发过程中解决跨域问题(vue.config.js结合axios)

    一.问题描述 在本地开发过程中,调用后端提供的接口获取数据将获取的数据渲染到页面中,但是浏览器报错: // 控制台报错信息 Access to XMLHttpRequest at 'http://x. ...

  6. Vue Cli3 项目 vue.config.js 配置

    Vue Cli3 项目 vue.config.js 配置 配置优化 一.js文件最小化处理 二.分割代码 三.图片资源压缩 四.开启gzip压缩 先看一下优化配置之前的文件大小 通过vue-cli3脚 ...

  7. vue main.js中引入js_手把手教你深入Vue3.0(Vue-cli4)项目打包性能优化实践

    记录了自己的博客在禁用缓存的情况下,从八九秒加载时间到最终985ms的优化实践,开启缓存的情况下能达到138ms的访问速度 本人的个人博客采用的是Vue-cli4.1.2 + typescript构建 ...

  8. Vue.js经典开源项目汇总

    Vue.js经典开源项目汇总   Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计 ...

  9. vue.js电商项目--美丽购物街day01首页制作

    vue.js电商项目--美丽购物街day01 首页效果如图 划分目录结构 vue.config.js配置文件别名 App.vue文件 router文件下的index.js 封装网络请求 Home.vu ...

最新文章

  1. 达摩院首席数据库科学家李飞飞:云原生新战场,我们如何把握先机?
  2. Logstash 父子关系 配置
  3. Cassandra HBase和MongoDb性能比较
  4. 3-uboot-spl代码流程
  5. 给定的 columnmapping 与源或目标中的任意列均不匹配_闻歌研究 | 图文自动匹配任务研究调研...
  6. 南京师范大学874计算机答案,2017年南京师范大学电气与自动化工程学院874电路考研题库...
  7. HTML如何添加锚点,我先收藏为敬
  8. JAVA基础进阶day01
  9. 300小时成为java程序员_直击面试现场: Java程序员3轮6小时面试, 成功拿到阿里offer!...
  10. 鸿蒙系统年底问世视频,鸿蒙系统年底问世 什么时候上市使用
  11. java 运行war_javaweb项目在Eclipse中启动Tomcat后运行正常,但是打成war包启动后运行异常的问题?...
  12. 如何让DIV模块随着页面固定和不固定
  13. 没法再详细的说说Linux压缩与归档命令(下-2)
  14. SSH项目搭建-01-使用idea创建Maven工程
  15. python模拟用户数据
  16. 电子书格式问题的本质
  17. 带485接口伺服电机使用MODBUS协议控制
  18. 【数据采集】-目前比较流行的几种数据采集方式
  19. get方法和post方法的区别和联系
  20. Chango的数学Shader世界(十七)RayTrace三维分形(二)—— Julia Set造型

热门文章

  1. GC之7大垃圾收集器详解(下)
  2. 模仿黑产破解12306验证码,验证码产品的未来是?
  3. GO tcp server demo
  4. go语言 数组 map整体json
  5. 在${}中为甚么采用@Param及多参数查询@Param
  6. leetcode 593. Valid Square | 593. 有效的正方形(Java)
  7. 【Python】SQLAlchemy:session何时commit,何时close?
  8. troubleshoot之:分析OutOfMemoryError异常
  9. 深入理解Memory Order
  10. 记一次 @Transactional不生效的问题