Vue中Router路由两种模式hash与history详解

 更新时间:2021年09月23日 17:26:54   作者:SpringSir  
这篇文章主要介绍了Vue中Router路由的两种模式,分别对hash模式与history模式作了简要分析,有需要的朋友可以借鉴参考下,希望能够有所帮助

hash 模式 (默认)

工作原理: 监听网页的hash值变化 —> onhashchange事件, 获取location.hash

使用 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。

会给用户好像跳转了网页一样的感觉, 但是实际上没有跳转

主要用在页面应用(SPA)

// 模拟原理
// 监听页面hash值变化
window.onhashchange = function(){
	// 获取当前url的哈希值 
	const _hash = location.hash
	// 根据不同的哈希值显示不同的内容
	switch(_hash) {
	     case '/#a':
	        document.querySelector('#app').innerHTML = '<h1>我是页面1内容</h1>'
	        break;
	     case '/#b':
	        document.querySelector('#app').innerHTML = '<h1>我是页面2内容</h1>'
	        break;
	     case '/#c':
	        document.querySelector('#app').innerHTML = '<h1>我是页面3内容</h1>'
	        break;
	} 
}

history 模式

工作原理: 主要利用 history.pushState() API 来改变URL, 而不刷新页面.

其实一共有五种模式可以实现改变URL, 而不刷新页面.

history.pushState()

history.replaceState()

history.go()

history.back() --> 等价于 history.go(-1)

history.forward() --> 等价于 history.go(1)

需要后台配置支持, 如果输入一个并不存在的url, 需要后端配置做 “兜底配置”, 不是粗暴的返回404, 而是返回首页

开启history模式

const router = new VueRouter({
  mode: 'history',
  routes: [...]
})

以上就是Vue中Router路由两种模式hash与history详解的详细内容,更多关于Vue中Router路由模式的资料请关注脚本之家其它相关文章!

相关文章

  • vue如何实现列表自动滚动、向上滚动的效果(vue-seamless-scroll)

    vue如何实现列表自动滚动、向上滚动的效果(vue-seamless-scroll)

    这篇文章主要介绍了vue如何实现列表自动滚动、向上滚动的效果(vue-seamless-scroll),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • vant的picker组件设置文字超长滚动方式

    vant的picker组件设置文字超长滚动方式

    这篇文章主要介绍了vant的picker组件设置文字超长滚动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 如何设置Vue全局公共方法

    如何设置Vue全局公共方法

    这篇文章主要介绍了如何设置Vue全局公共方法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 浅谈Vue3 Composition API如何替换Vue Mixins

    浅谈Vue3 Composition API如何替换Vue Mixins

    这篇文章主要介绍了浅谈Vue3 Composition API如何替换Vue Mixins,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • Vue项目中使用jquery的简单方法

    Vue项目中使用jquery的简单方法

    这篇文章主要给大家介绍了关于Vue项目中使用jquery的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Vue具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • 关于Uncaught(in promise)TypeError: list is not iterable报错解决

    关于Uncaught(in promise)TypeError: list is not iterable报错

    这篇文章主要给大家介绍了关于Uncaught(in promise)TypeError: list is not iterable报错的解决方法,文中通过示例代码介绍的非常详细,对大家学习或者工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 解决vscode进行vue格式化,会自动补分号和双引号的问题

    解决vscode进行vue格式化,会自动补分号和双引号的问题

    这篇文章主要介绍了解决vscode进行vue格式化,会自动补分号和双引号的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • Vue项目安装less和less-loader的详细步骤

    Vue项目安装less和less-loader的详细步骤

    这篇文章主要介绍了Vue项目安装less和less-loader的详细步骤,本文分步骤结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • vue router路由嵌套不显示问题的解决方法

    vue router路由嵌套不显示问题的解决方法

    这篇文章主要为大家详细介绍了vue router路由嵌套不显示的问题,具有一定的参考价值,感兴趣的小伙伴们可以参考一下vue-router 路由嵌套不显示问题
    2017-06-06
  • Vue.js 中制作自定义选择组件的代码附演示demo

    Vue.js 中制作自定义选择组件的代码附演示demo

    这篇文章主要介绍了Vue.js 中制作自定义选择组件的代码附演示demo,通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论