vue-router 中常用的 hash 和 history 路由模式实现原理
2023-12-27 09:19:45
Vue-Router 中常用的 hash 和 history 路由模式实现原理如下:
- Hash 模式:在这种模式下,URL 中带有一个
#
符号,后面跟随的是路径部分。例如:http://example.com/#/home
。在 Vue-Router 中,Hash 模式是默认模式。
实现原理:当页面的 URL 发生变化时,浏览器会发送一个带有 #
的请求到服务器。浏览器不会重载页面,而是通过监听 hashchange
事件来改变页面内容。Vue-Router 利用了这一特性,在初始化时会监听浏览器的 hashchange
事件,并根据 URL 中的 hash 值来匹配对应的路由,然后渲染相应的组件。
- 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 错误。
文章来源:https://blog.csdn.net/weixin_59525879/article/details/135233004
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!