/**
* action是异步,mutation是同步
* vuex中使用commit来修改state的原因解析
* 开启严格模式,仅需在创建 store 的时候传入 strict: true;
* 在严格模式下,无论何时发生了状态变更且不是由 mutation 函数引起的,将会抛出错误。这能保证所有的状态变更都能被调试工具跟踪到。
* 通过commit提交mutation修改state的值,ue的调试工具能够记录每,可以跟踪记录state的变化,直接修改state不能跟踪变化
*/
/**
* Vue-Router有二种——————hash、history二种方式
* hash可以调用window的对象监听这个事件,通过监听hash的值的变化,页面发生变化,没有进行浏览器的请求
*
* */
window.onhashchange = function (event) {
let hash = location.hash.slice(1);
document.body.style.color = hash;
}
/**
* histoty 的api给前端很多自由可以实现二大部分,切换和修改
* */
// 切换历史记录
history.go(-2);
history.go(2);
history.back();
history.forward();
// 修改历史,包括二个方法pushState、replaceState二个方法(objState,title,url)
history.replaceState({ color: 'red' }, 'red', 'red');
window.onpopstate = function (event) {
if (event.state && event.state.color === 'red') {
document.body.style.color = 'red';
}
}
// history怕什么,怕刷新,不怕前进和后退,怕h5刷新,刷新就进行了http请求,服务器接收不到,就会返回404,所以需要服务器端配置