spa 单页面解决浏览器back front 问题

时间:2021-08-18 08:02:55

1.angular router

  reloadOnSearch:true(default) | false

    默认为true,当url的hash发生改变,页面新渲染,component会重新加载(初始化);

  false,当url的hash发生改变,页面不重新渲染,component不会重新加载(初始化);

2.改变url的hash

  window.history.pushState({}, null, '?tab=home');改方法可以直接改变url的hash,并加入history;

当前url为http://localhost:8888
执行前:http://localhost:8888
window.history.pushState({}, null, '?tab=home');
执行后:http://localhost:8888?tab=home

    window.location.hash 取或者设置url的hash值,直接在url上面加入hash:

当前url为http://localhost:8888
执行前:http://localhost:8888
window.location.hash = 'name=test';
执行后:http://localhost:8888?tab=home#name=test

    window.location.search 取或者url 通过pushState的值,方法类似window.history.pushState({}, null, '?tab=home');