spa(单页)应用
本质就是根据url变化动态切换组件展示
有hash和histrory 模式
url组成部分中 '#' 号 开始的内容称为hash值,以前是用来做页面滚动锚点的
浏览器提供了 window.history的 replaceState/pushState 2个函数,可以做到改动url 而浏览器不刷新
hash的兼容性较好,histroy在某些安卓低版本上不能用,像vue-router就会回退到hash模式
而此时路由会展示默认页面 就是 path: / 对应的页面,那么可以在默认页面中判断$router.mode === $router.option.mode 来确定是否是回退hash了,回退了用$router.replace切一次即可
原理:跑正则匹配配置的url确定要展示的组件
监控url变化事件:
history 根据window的popstate事件
hash 模式根据window的 hashchange/popstate 事件
好处看和谁比:
和iframe比就是加载资源少,白屏时间短,状态共享无障碍
坏处很明显,项目大了不好切成小项目维护,所以现在微前端方案层出不穷



