vuejs学习与总结——路由基础篇

本文介绍了前后端发展历程,重点讲解了前端路由阶段,特别是Vue.js的路由插件vue-router。在SPA页面中,前端路由允许改变URL而不刷新整个页面,通过URL的hash或HTML5 history API实现。vue-router是Vue.js官方的路由插件,用于构建单页面应用,它与Vue深度集成,基于组件和路由映射。文章还详细阐述了vue-router的安装、使用方法及<router-link>组件的应用。
摘要由CSDN通过智能技术生成

前后端发展阶段

后端路由阶段

  • 我们知道,早期的网站开发整个HTML页面是由服务器端来渲染的

  • 服务器直接生产渲染好对应的HTML页面,返回个哭护短进行展示

  • 后端路由

    • 一个网页有着自己对应的网址,也就是url
    • url会发送到服务器端,服务器会通过正则对该URL进行匹配,并且最后交给一个controller进行处理
    • controller进行各种处理,最终生成HTML或者数据,返回给前端
      当我们页面中需要请求不同不同的路径内容时,交给服务器来处理,服务器渲染好整个页面,并且将页面返回个客户端,这种情况下渲染好的页面,不需要单独加载任何的js和css,可以直接交给浏览器来展示,这样有利于SEOd的优化
  • 缺点

    • 一种情况是整个页面的模块都有后端人员来编写和维护
    • 另外一种情况就是前段开发人员如果要开发页面,需要通过PHP和java等语言来编写页面代码
    • 而且通常情况下,HTML代码和数据以及对应的逻辑会混淆爱一起,编写和维护都十分困难

后端渲染

在这里插入图片描述

前后端分离阶段

后端只负责提供数据,不负责任何阶段的内容

  • 随着Ajax的出现,有了前后端分离的开发模式
  • 后端只提供API来返回数据,前端通过Ajax获取数据,并且可以通过javaScript将数据渲染到页面中
  • 这样做的最大的优点就是后端的责任的清晰,后端专注于数据上,前端专注于交互和可视化上
  • 并且当移动端(IOS/android)出现后,后端不需要进行任何的处理,依然可以使用之前的API即可
  • 目前很多网站都蚕蛹这个模式进行开发

前端渲染

在这里插入图片描述

前端路由阶段(spa页面)

单页面富应用阶段

  • 其实SPA最主要的特点就是在前后端分离的基础上加上了一层前端路由
  • 也就是运用前端来维护一套路由规则
  • 整个页面只有一个html页面
    前端路由的核心:
    • 改变URL,但是页面不进行整体的刷新
    • 如何实现呢?

url的hash和HTML的history

  • 方法一: URL的hash
    • URL的hash也就是我们所说的锚点(#),本质上是改变window.location的href属性
    • 我们可以通过直接赋值loactipn.hash来改变href,但是页面不发生刷新
      在这里插入图片描述
  • 方法二:HTML中的history模式:pushState
    在这里插入图片描述

方法三::HTML中的history模式:replaceState
在这里插入图片描述

认识vue-router

简介

目前前端三大主流框架,都有着自己的路由实现。现在主要介绍的是:vue-router

  • vur-router是vuejs官方的路由插件,他和vue.js是深度集成的,适合于构建单页面应用
  • vue-router是基于路由和组件的
  • 在vue-router的单页面应用中,页面的路径改变就是组件的切换

安装和使用路由

安装

因为之前学过了webpack,我们可以使用工程化的方式进行开发的
所以后续时,我们直接npm来安装路由即可
步骤:

  • 1 安装 vur-routernpm -router --save
  • 2在模块化工程中使用它(因为这是一个插件,我们可以通过vue.use()来安装路由)
    • ①导入路由对象,并且盗用vue.use(vuerouter)
    • ②创建路由实例,并且传入路由映射配置
    • ③在vue实例中挂载创建的路由实例

使用

步骤:

  • 创建路由组件
  • 配置路由映射:组件和路径映射关系词
  • 使用路由:通过:<router link ><router-view>

<router link ><router-view>:
<router link >: 该标签是一个vue-router中已经内置的组件,它会被渲染成一个标签
<router-view>:该标签会更具当前的路径,动态渲染出不同的组件,网页的洽谈内容,比如顶部的标题导航,或者底部的一些版权信息等会和 <router-view>处于同一个等级
在路由切换时,切换的是<router-view>挂载的组件,其他内容不会发生改变

< router link >属性补充

属性作用
:to用于指定跳转的路径
tag可以指定< router-link>之后渲染成什么样式,
replacereplace不会留下history记录,所以指定replace的情况下,后推荐不能返回到上一个界面中
active-class当< router-link> 匹配成功时,会自动给当前元素设置一个router-link-active的class,设置active-class可以修改默认的名称【在进行高亮显示的导航菜单或者底部tabbar时,会使用到该类,但是通常不会修改类的属性,会直接使用默认的router-link-active即可】

具体实现如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值