在react vue等框架构筑的单应用当中改变地址栏路径分为两类情况
1.地址栏hash部分的地址变动,不会导致浏览器像服务器重新发起请求,从而不会重新加载整个单页面应用的脚本。
2.history类型路由单页面应用中,在浏览器中手动对路径的改变会导致浏览器重新向服务器发送请求,有缓存的就从缓存重新加载脚本,没有缓存就从服务器请求相应的脚本加载。
例如浏览器中的地址栏原本地址是
localhost/myApp/login
改动后变为
localhost/myApp/userDetai
这种路径改动就会导致脚本的重新加载。
但是在应用中通过应用的路由导航到新的地址是不会导致脚本加载的,只有手动改变(点击前进,后退按钮也算手动改变)导航地址才会导致整个单页面应用的脚本重新加载。
影响
因为history模式手动改变地址栏路径就会重新加载整个应用脚本,所以在一些页面需要通过脚本全局变量来共享状态的方式就会在手动改变地址后导致全局变量失效,从而无法实现。所以这个时候就要把全局的状态变量存储在localStorage等的浏览器本地存储当中。