前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue-Router

Vue-Router

作者头像
名字是乱打的
发布2021-12-23 17:31:45
2.3K0
发布2021-12-23 17:31:45
举报
文章被收录于专栏:软件工程软件工程
一 .什么是路由?

路由是一个网络工程里面的术语。路由(routing)就是通过互联的网络把信息从源地址传输到目的地址的活动. --- 维基百科

二 .路由器提供了两种机制: 路由和转送.
  • 路由是决定数据包从来源到目的地的路径.
  • 转送将输入端的数据转移到合适的输出端.
  • 路由中有一个非常重要的概念叫路由表.路由表本质上就是一个映射表, 决定了数据包的指向.
三 .Vue-router的功能

*Vue Router是Vue.js的官方路由器。它与Vue.js核心深度集成,使使用Vue.js轻松构建单页应用程序变得轻而易举。功能包括:

  • 嵌套路线/视图映射
  • 模块化,基于组件的路由器配置
  • 路由参数,查询,通配符
  • 查看由Vue.js过渡系统提供动力的过渡效果
  • 细粒度的导航控制
  • 与自动活动CSS类的链接
  • HTML5历史记录模式或哈希模式,在IE9中具有自动备用
  • 可自定义的滚动行为
Vue-router构建单应用界面的核心

改变URL,但是页面不进行整体的刷新。 如何做到这一点呢?

方法一:URL的hash
  • URL的hash也就是锚点(#), 本质上是改变window.kk属性.
  • 我们可以通过直接赋值location.hash来改变href, 但是页面不发生刷新
方法二:history接口

history接口是HTML5新增的, 它有五种模式改变URL而不刷新页面.

  • history.pushState()
  • history.replaceState()
  • history.go()
  • ps: 上面只演示了三个方法 因为 history.back() 等价于 history.go(-1) history.forward() 则等价于 history.go(1) 这三个接口等同于浏览器界面的前进后退。
四 .vue-router是基于路由和组件的

路由用于设定访问路径, 将路径和组件映射起来. 在vue-router的单页面应用中, 页面的路径的改变就是组件的切换.

五. 安装和使用vue-router

因为我们已经学习了webpack, 后续开发中主要是通过工程化的方式进行开发的.我们直接使用npm来安装路由即可.

  • 步骤一: 安装vue-router npm install vue-router --save
  • 步骤二: 在模块化工程中使用它(因为是一个插件, 所以可以通过Vue.use()来安装路由功能)
    • 第一步:router/index.js中导入路由对象,并且调用 Vue.use(VueRouter)
    • 第二步:router/index.js中创建路由实例,并且传入路由映射配置
    • 第三步:在Vue实例中挂载创建的路由实例

    左边创建导入使用Vue-router并配置映射关系,

  • 使用vue-router的步骤:
    • 第一步: 创建路由组件
    • 第二步: 配置路由映射: 组件和路径映射关系
    • 第三步: 使用路由: 通过<router-link>和<router-view> <router-link>: 该标签是一个vue-router中已经内置的组件, 它会被渲染成一个<a>标签. <router-view>: 该标签会根据当前的路径, 动态渲染出不同的组件. 网页的其他内容, 比如顶部的标题/导航, 或者底部的一些版权信息等会和<router-view>处于同一个等级. 在路由切换时, 切换的是<router-view>挂载的组件, 其他内容不会发生改变.

    步骤图解 效果图

路由的默认路径--redirect

路由的默认路径即:默认情况下, 进入网站的首页, 我们希望<router-view>渲染首页的内容. 但是我们的实现中, 默认没有显示首页组件, 必须让用户点击才可以.

如何可以让路径默认跳到到首页, 并且<router-view>渲染首页组件呢?

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

配置解析:

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

如何改变Vue-router加载组件的方式?

我们前面说过改变路径的方式有两种:

  • URL的hash(浏览器URL中带#不好看)
  • HTML5的history 默认情况下, 路径的改变使用的URL的hash.

如果希望使用HTML5的history模式, 非常简单, 在router.js进行如下配置即可:

router-link补充

在前面的<router-link>中, 我们只是使用了一个属性: to, 用于指定跳转的路径. <router-link>还有一些其他属性:

  • tag: tag可以指定<router-link>之后渲染成什么组件, 比如上面的代码会被渲染成一个<li>元素, 而不是<a> <router-link to='/home' tag='li'>
  • replace: replace不会留下history记录, 所以指定replace的情况下, 后退键返回不能返回到上一个页面中<router-link to='/home' tag='li' replace>
  • active-class:<router-link>对应的路由匹配成功时, 会自动给当前渲染的标签元素设置一个router-link-activeclass, 在标签内设置active-class可以修改默认的名称router-link-active.
    • 在进行高亮显示的导航菜单或者底部tabbar时, 会使用到该类.
    • 但是通常不会修改类的属性, 会直接使用默认的router-link-active即可.
通过代码进行路由跳转

有时候, 页面的跳转可能需要执行对应的JavaScript代码, 这个时候, 就可以使用第二种跳转方式了 比如, 我们修改之前的router-link为button并绑定click,将代码修改如下:

当然如果我们不想用push这种可以返回的路由控制,我们也可以用this.$router.replace('/home')

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/11/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一 .什么是路由?
  • 二 .路由器提供了两种机制: 路由和转送.
  • 三 .Vue-router的功能
    • Vue-router构建单应用界面的核心
      • 方法一:URL的hash
  • 方法二:history接口
  • 四 .vue-router是基于路由和组件的
  • 五. 安装和使用vue-router
    • 路由的默认路径--redirect
      • 如何可以让路径默认跳到到首页, 并且<router-view>渲染首页组件呢?
      • 配置解析:
  • 如何改变Vue-router加载组件的方式?
    • router-link补充
      • 通过代码进行路由跳转
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档