【 vue-router的原理 】

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-router的步骤:

  • 第一步:创建路由组件
  • 第二步:配置路由映射:组件和路径映射关系
  • 第三步:使用路由:通过和

三、route,routes,router

route:首先它是个单数,译为路由,即我们可以理解为单个路由或者某一个路由;

routes:它是个复数,表示多个的集合才能为复数;即我们可以理解为多个路由的集合,JS中表示多种不同状态的集合的形式只有数组和对象两种,事实上官方定义routes是一个数组;所以我们记住了,routes表示多个数组的集合;

router:译为路由器,上面都是路由,这个是路由器,我们可以理解为一个容器包含上述两个或者说它是一个管理者,负责管理上述两个;举个常见的场景的例子:当用户在页面上点击按钮的时候,这个时候router就会去routes中去查找route,就是说路由器会去路由集合中找对应的路由;

四、路由的默认路径

默认情况下,进入网站的首页,我们希望渲染首页的内容。
但是我们的实现中,默认没有显示首页组件,必须让用户点击才可以。

如何可以让路径默认跳转到首页,并且渲染首页组件呢?
我们需要多配置一个映射就可以了

{
  path: '/',
  redirect: '/home'
},

配置解析:

我们在routes中又配置一个映射
path配置的是根路径:/
redirect是重定向,也就是我们将根路径重定向到/home的路径下,这样就可以得到我们想要的结果了。

五、HTML5的History模式

改变路径的方式有两种:

URL 的 hash
HTML5 的 history
默认情况下,路径的改变使用的URL的 hash
如果希望使用HTML5的history模式,进行如下的配置:

在这里插入图片描述

6、router-link属性介绍

  • to:用于指定跳转的路径
  • tag:tag可以指定之后渲染成什么组件,比如我们下面的代码会被渲染成一个<li元素,而不是<a 。 如:<router-link to=‘/home’ tag=‘li’
  • replace:replace不会留下history记录,所以指定replace的情况下,后退键返回不能返回到上一个页面中
  • active-class:当对应的路由匹配成功时,会自动给当前元素设置一个router-link-active的class,设置active-class可以修改默认的名称。

7、路由懒加载

路由懒加载的方式

方式一:结合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 ’ )
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值