文章目录

1、认识vue-router

2、安装和使用vue-router

3、路由的默认路径

4、HTML5的History模式

5、router-link属性介绍

6、路由代码跳转

7、动态路由

8、路由懒加载

9、嵌套路由实现

10、传递参数的方式

11、导航守卫的使用

12、TabBar实现思路

1、认识vue-router

目前前端流行的三大框架,都有自己的路由实现:

Angular的ngRouter

React的ReactRouter

Vue的vue-router

vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。

我们可以访问其官方网站对其进行学习:https://router.vuejs.org/zh/

vue-router是基于路由和组件的

路由用户设定访问路径的,将路径和组件映射起来。

在vue-router的单页面应用中,页面的路径的改变就是组件的切换

2、安装和使用vue-router

第一步:安装vue-router

npm install vue-router --save

第二步:在模块化工程中使用它(因为是一个插件,所以可以通过Vue.use()来安装路由功能)

导入路由对象,并且调用Vue.use(VueRouter)

创建路由实例,并且传入路由映射配置

在Vue实例中挂载创建的路由实例

使用vue-router的步骤:

第一步:创建路由组件

第二步:配置路由映射:组件和路径映射关系

第三步:使用路由:通过和

代码实现步骤:

创建router实例

挂载到Vue实例中

第一步:创建路由组件

第二步:配置组件和路由的映射关系

第三步:使用路由

:该标签是一个vue-router中已经内置的组件,他会被渲染成一个标签。

:该标签会根据当前的路径,动态渲染出不同的组件。

3、路由的默认路径

默认情况下,进入网站的首页,我们希望渲染首页的内容。

但是我们的实现中,默认没有显示首页组件,必须让用户点击才可以。

如何可以让路径默认跳转到首页,并且渲染首页组件呢?

我们需要多配置一个映射就可以了

{

path: '/',

redirect: '/home'

},

配置解析:

我们在routes中又配置一个映射

path配置的是根路径:/

redirect是重定向,也就是我们将根路径重定向到/home的路径下,这样就可以得到我们想要的结果了。

4、HTML5的History模式

改变路径的方式有两种:

URL 的 hash

HTML5 的 history

默认情况下,路径的改变使用的URL的 hash

如果希望使用HTML5的history模式,进行如下的配置:

5、router-link属性介绍

to:用于指定跳转的路径

tag:tag可以指定之后渲染成什么组件,比如我们下面的代码会被渲染成一个元素,而不是 。 如:

replace:replace不会留下history记录,所以指定replace的情况下,后退键返回不能返回到上一个页面中

active-class:当对应的路由匹配成功时,会自动给当前元素设置一个router-link-active的class,设置active-class可以修改默认的名称。

6、路由代码跳转

有的时候,页面的跳转可能需要执行相应的JavaScript代码,这个时候,就可以使用第二种跳转方式了。

比如我们将代码修改如下:

7、动态路由

在某些情况下,一个页面的path路径可能是不确定的,比如我们进入用户界面时,希望是如下的路径:

/user/aaa或/user/bbb

除了有前面的/user之外,后面还跟上了用户的ID

这种path和Component的匹配关系,我们称之为动态路由(也是路由传递数据的一种方式)

8、路由懒加载

路由懒加载的方式

方式一:结合Vue的异步组件和Webpack的代码分析

const Home = resolve => { require. ensure(['../ components/Home.vue'], () => { resolve(require('../ components/Home.vue')) })};

方式二:AMD写法

const About = resolve => require([' ../ components/ About.vue'], resolve);

方式三:在ES6中,我们可以有更加简单的写法来组织Vue异步组件和Webpack的代码分割

const Home = () => import(' . ./ components/Home.vue ' )

路由懒加载的效果

9、嵌套路由实现

10、传递参数的方式

传递参数主要有两种类型:params和query

params的类型:

配置路由格式:/router/:id

传递的方式:在path后面跟上对应的值

传递后形成的路径:/router/123,/router/abc

query的类型:

配置路由格式:/router,也就是普通配置

传递的方式:对象中使用query的key作为传递方式

传递后形成的路径:/router?id= 123,/router?id=abc

11、导航守卫的使用

我们可以利用beforeEach来完成标题的修改

首先,我们可以在钩子当中定义一些标题,可以利用mate来定义

其次,利用导航守卫修改我们的标题

导航钩子的三个参数解析:

to:即将要进入的目标的路由对象

from:当前导航即要离开的路由对象

next:调用该方法后,才能进入下一个钩子

如果是后置钩子,也就是afterEach,不需要主动调用next()函数。

上面我们使用的导航守卫,被称之为全局守卫。

12、TabBar实现思路

如果在下方有两个单独的TabBar组件,你如何封装

自定义TabBar组件,在APP中使用

让TabBar处于底部,并且设置相关的样式

TarBar中显示的内容由外界决定

定义插槽

flex布局平分TabBar

自定义TarBarItem,可以传入图片和文字

定义TabBarItem,并且定义两个插槽:图片、文字。

给两个插槽外层包装div,用于设置样式。

填充插槽,实现底部TabBar的效果。

传入高亮图片

定义另外一个插槽,插入active-icon的数据

定义一个变量isActive,通过v-show来决定是否显示对应的icon

TabBarItem绑定路由数据

安装路由:npm install vue-route --save

完成router/index.js的内容,以及创建对应的组件

main.js中注册router

APP中加入组件

点击item跳转到对应路由,并且动态决定isActive

监听item的点击,通过this.$router.replace()替换路由路径

通过this.$route.path.indexOf(this.link) !== -1来判断是否是active

动态计算active样式

封装新的计算属性:this.isActive ? {'color': 'red'}:{}

效果图:

如果有收获!!! 希望老铁们来个三连,点赞、收藏、转发。

创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客

vue路由模板是html,vue-router 详解相关推荐

  1. vue路由跳转写法在html,详解vue 路由跳转四种方式 (带参数)

    1.  router-link 1. 不带参数 //name,path都行, 建议用name // 注意:router-link中链接如果是'/'开始就是从根路由开始,如果开始不带'/',则从当前路由 ...

  2. vue中模板编译compiler源码详解

    vue编译模板过程; <div><h1>这是compiler</h1> <p v-if="message">{{ message } ...

  3. vue动态设置文字布局方式_详解Vue动态添加模板的几种方法

    动态添加模板需要收集原始数据的页面,这个时候我们需要很多原始数据收集模板,下面给大家详解Vue 动态添加模板的几种方法,希望对你学习这方面知识有所帮助. 通常我们会在组件里的 template 属性定 ...

  4. 25、react 中使用路由 router 详解

    react 中使用路由 router 详解 今天开始最新的一个模块,也是 react 开发中最重要的一部分,就是路由. SPA 理解 我们使用原生的 HTML + CSS + JavaScript 开 ...

  5. 视频教程-德国Vue.js2终极开发教程(含Vue路由和Vuex)-Vue

    德国Vue.js2终极开发教程(含Vue路由和Vuex) * Academind GmbH创始人,当前生活在德国慕尼黑 * 从15岁开始进入开发领域,前后端技术均很精通,毕业于慕尼黑大学硕士学位 * ...

  6. vue build text html,Vue中v-text / v-HTML使用实例代码详解_放手_前端开发者

    废话少说,代码如下所述: /p> 显示123 /p> 补充:vuejs {{}},v-text 和 v-html的区别 {{message}} let app = new Vue({ el ...

  7. 移动端html5手写板,Vue+canvas实现移动端手写板步骤详解

    这次给大家带来Vue+canvas实现移动端手写板步骤详解,Vue+canvas实现移动端手写板的注意事项有哪些,下面就是实战案例,一起来看一下. 清除 保存 Canvas画板 var draw; v ...

  8. vue 生命周期的11中方法详解

    vue 生命周期的十一中方法详解 vue 生命周期的定义 vue实例 从创建到销毁,也就是说从创建 -> 初始化 数据-> 编译模版 -> 挂载Dom -> 渲染 更新 -&g ...

  9. vue的父子组件之间的通信详解

    vue的父子组件之间的通信详解 一.父组件给子组件传值 父组件引入子组件,并对子组件进行监听 <!-- 父组件 --><template><div><h1&g ...

  10. c语言stl模板,c/c++开发分享C++ 标准模板库 STL 顺序容器详解

    c++ 标准模板库 stl 顺序容器 容器 顺序性 重复性 支持迭代器 vector 动态数组 无序 可重复 随机访问迭代器 deque 双向队列 无序 可重复 随机访问迭代器 list 双向链表 无 ...

最新文章

  1. Mysql5.7使用注意事项随笔
  2. 藏在正则表达式里的陷阱
  3. (每天一句python)两个list的交集、并集、差集
  4. 牛逼轰轰!GitHub 上 Star 量最高的 5 个机器学习项目
  5. 为什么java button 不能用 显示红色_Java中的整型包装类值的比较为什么不能用==比较?原因是因为缓存...
  6. 4个数之和 4Sum II
  7. dijkstra--非负权值的单源最短路径STL实现(邻接表+优先队列) (带路径)
  8. Swift iOS : Core Data
  9. SSH2框架多数据源配置原理和方式
  10. 2020中考可不可以用计算机,2020北京中考录取规则:北京中考计算机的录取规则...
  11. linux应用程序逆向,Linux下查看并下载命令源码包(依据命令/应用程序逆向获取并且安装其所属源码包)...
  12. “盈利为王”运营商财务管理沙盘--徐凌云老师
  13. SAP ABAP Loop…Assigning与Loop…Into的比较
  14. DAX函数十大分类及示例
  15. C++打印图片的方法
  16. 方法简单适合新手!把图片变音乐视频,上月收入7000多
  17. python----下载安装
  18. python和es6_JavaScript-ES6总结(更新中!!!)
  19. Java面向对象8——抽象类和抽象方法(知识点+使用方法)
  20. addEvent和removeEvent优化写法

热门文章

  1. 多张图片如何合并成一个pdf
  2. OpenCV简单图像分割
  3. 今日头条面试经验分享
  4. Android Gatekeeper
  5. Typora下载安装及使用方法
  6. Exiftool not found metadata operations disabled 索尼相机查如何查快门教程
  7. android 浏览器支持java,Android浏览器访问java web的方法
  8. 河工大邮箱申请,jetbrains学生邮箱申请,ideaIU版本下载、激活
  9. Ae 入门系列之五:效果和预设
  10. java null==null是否成立