路由的前端原理

Vue-Router的三种模式包括Hash模式,利用浏览器的hashchange事件;History模式,基于HTML5的pushState和popState,提供更美观的URL但需考虑SEO和服务器配置;以及Abstract模式,适用于无浏览器环境。Hash模式的URL含有#,不发送HTTP请求,而History模式下URL改变会触发HTTP请求,可能引起404错误。
摘要由CSDN通过智能技术生成

前端路由的核心在于改变视图的同时不会向后端发送http请求。而是通过加载对应的路由组件。vue-router就是将组件映射到路由,然后渲染出来。有hash模式 ,history模式与Abstract模式,默认hash模式

hash模式:

基于浏览器的hashchange事件,地址变化时,通过window.location.hash获取地址栏上的hash值。

hash模式的优点:

  • hash值会出现在url中,但是不会被包含在http请求中。因此hash值改变不会重新加载页面。

  • hash改变会触发hashchange事件,能控制浏览器的前进后退。

hash模式的缺点:

  1. 地址栏中携带#,不美观。

  1. 只能修改#后的hash值部分。

  1. 有体积限制,只能添加短字符串。

  1. 设置的新值必须与旧值不一样,才能触发hashchange事件,并记录到栈中。

  1. 每次的url的改变不属于http请求,所以不利于seo优化

history模式

基于HTML5新增的pushState和replaceState 两个api,以及浏览器的popState事件,地址变化时,通过window.location.pathname找到对应的组件。

history模式的优点:

  • 地址栏更美观

  • 浏览器的前进后退能触发浏览器的popState事件,获取window.location.pathname来控制页面的变化

history模式的缺点:

1.url的改变属于http请求。借助history.pushState实现页面无刷新跳转。因此会重新请求服务器,所以前端的url与后端的url一致,不一致的话,匹配不到静态资源,返回404页面。

2.兼容性差,特定浏览器支持

Abstract模式

abstract模式是使用一个不依赖于浏览器的浏览历史虚拟管理后端。

根据平台差异可以看出,在 Weex 环境中只支持使用 abstract 模式。 不过,vue-router 自身会对环境做校验,如果发现没有浏览器的 API,vue-router 会自动强制进入 abstract 模式,所以 在使用 vue-router 时只要不写 mode 配置即可,默认会在浏览器环境中使用 hash 模式,在移动端原生环境中使用 abstract 模式。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值