vue-router 中常用的 hash 和 history 路由模式实现原理

简介: vue-router 中常用的 hash 和 history 路由模式实现原理

Vue-Router 中常用的 hash 和 history 路由模式实现原理如下:


  1. Hash 模式:在这种模式下,URL 中带有一个 # 符号,后面跟随的是路径部分。例如:


http://example.com/#/home。在 Vue-Router 中,Hash 模式是默认模式。


实现原理:当页面的 URL 发生变化时,浏览器会发送一个带有 # 的请求到服务器。浏览器不会重载页面,而是通过监听 hashchange 事件来改变页面内容。Vue-Router 利用了这一特性,在初始化时会监听浏览器的 hashchange 事件,并根据 URL 中的 hash 值来匹配对应的路由,然后渲染相应的组件。


  1. History 模式:在这种模式下,URL 中没有 # 符号,路径部分更加清晰。例如:


http://example.com/home


实现原理:History 模式利用了 HTML5 中的 History API,包括 pushState()replaceState()popstate 事件。当用户点击链接或执行 JavaScript 代码改变页面 URL 时,Vue-Router 会调用浏览器的 pushState()replaceState() 方法来修改 URL,并通过监听 popstate 事件来响应 URL 的变化。这样就可以实现在 URL 改变时,无需刷新页面就能渲染相应的组件。


需要注意的是,在使用 History 模式时,需要确保服务器端配置正确,因为直接访问 URL 时,服务器需要返回对应的 HTML 文件,否则会导致 404 错误。

相关文章
|
13天前
|
缓存 JavaScript 搜索推荐
Vue SSR(服务端渲染)预渲染的工作原理
【10月更文挑战第23天】Vue SSR 预渲染通过一系列复杂的步骤和机制,实现了在服务器端生成静态 HTML 页面的目标。它为提升 Vue 应用的性能、SEO 效果以及用户体验提供了有力的支持。随着技术的不断发展,Vue SSR 预渲染技术也将不断完善和创新,以适应不断变化的互联网环境和用户需求。
31 9
|
16天前
|
资源调度 JavaScript 前端开发
路由管理:Vue Router的使用和配置技巧
【10月更文挑战第21天】路由管理:Vue Router的使用和配置技巧
29 3
|
2月前
|
缓存 JavaScript 前端开发
「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
该文章全面覆盖了Vue.js从基础知识到进阶原理的48个核心知识点,包括Vue CLI项目结构、组件生命周期、响应式原理、Composition API的使用等内容,并针对Vue 2与Vue 3的不同特性进行了详细对比与讲解。
「offer来了」从基础到进阶原理,从vue2到vue3,48个知识点保姆级带你巩固vuejs知识体系
|
24天前
|
JavaScript API
vue 批量自动引入并注册组件或路由等等
【10月更文挑战第12天】 vue 批量自动引入并注册组件或路由等等
|
25天前
|
JavaScript 前端开发 API
vue3中常用插件的使用方法:按需引入自定义组件,自动导入依赖包,自动生成路由,自动生成模拟数据
vue3中常用插件的使用方法:按需引入自定义组件,自动导入依赖包,自动生成路由,自动生成模拟数据
481 0
|
25天前
|
JavaScript 前端开发 UED
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
vue中vue-router路由懒加载(按需加载)的作用以及常见的实现方法
146 1
|
30天前
|
JavaScript UED
Vue双向数据绑定的原理
【10月更文挑战第7天】
|
1月前
|
JavaScript 前端开发 UED
|
1月前
|
JavaScript 前端开发 API
前端技术分享:Vue.js 动态路由与守卫
【10月更文挑战第1天】前端技术分享:Vue.js 动态路由与守卫
|
1月前
|
资源调度 JavaScript UED
如何使用Vue.js实现单页应用的路由功能
【10月更文挑战第1天】如何使用Vue.js实现单页应用的路由功能