在Vue Router中,有两种路由模式可供选择:hash模式和history模式。它们各自有一些优点和缺点,下面是它们的简要介绍:
hash模式的原理是通过hashchange事件,通过监听hash变化来驱动界面变化。它的url中有 # 号
1、监听地址栏中hash变化驱动界面变化
2、用pushsate记录浏览器的历史,驱动界面发送变化
history模式的原理是通过popstate事件,通过监听浏览器历史记录变化来驱动界面变化。
需要注意的是调用history.pushState()或history.replaceState()不会触发popstate事件。
只有在做出浏览器动作时,才会触发该事件,如用户点击浏览器的回退按钮(或者在Javascript代码中调用history.back())它的url中没有 # 号
项目上线之后,需要在后端服务器额外配置,否则会出现404错误
history 模式核心借用 HTML5 history api,api 提供了丰富的 router 相关属性先了解一个几个相关的 api
pushState 向浏览器历史纪录添加记录
replaceState修改浏览器历史纪录中当前纪录
popState 事件, 当 history 发生变化时触发
优点:
缺点:
优点:
缺点:
选择使用哪种模式取决于你的项目需求和实际情况。如果你的项目需要兼容性好且不需要美观的URL,可以选择Hash模式。如果你的项目追求更美观的URL,并且能够进行服务器端配置,可以选择History模式。