vue-router 面试回答

1.路由有三种模式分别是:

a.hash:URL采用hash值作为路由,变现为#/a
b.history:依赖 HTML5 History和服务器配置
c.abstract:支持所有 JavaScript 运行环境,如Node.js 服务器端。如果发现没有浏览器的 API,路由会自动强制进入这个模式。

2.hash模式通过window.location.hash的改变,监听window.onhashchange的变化在路由变化的时候去渲染页面,不会向服务器发送请求

     window.addEventListener('onhashchange',()=>{
      //dosomething 
     })

3.history模式通过window.onpopstate方法监听window.history(go、forward、back)等方法的变化去更新视图,会向服务器发送请求需要服务器配置(例如nginx配置index),window.history.pushState(replaceState)只会刷新url不会刷新视图,但是会改变页面栈.

      window.addEventListener('popstate', function (e) {
         let goHref = window.location.href;
         console.log('即将跳转目标路径为:', goHref );
         // 走到这一步,页面还没有跳转
      });

你可能感兴趣的:(vue-router 面试回答)