学习并实现一版简易的vue-router。
如何在没有vue-router等路由组件的情况下开发SPA?
简单来说,路由就是用来和后端服务器进行交互的一种方式,通过不同的路径,请求不同的资源,请求不同的页面是路由的其中一种功能。
类似于htttp://blog.careteen.wang/#/login,#后面为hash部分,hash值变化,不会刷新页面,也就是浏览器不会向服务端发送请求,但会触发hashchange事件,通过监听这个事件,可以根据不同hash渲染不同视图。
由H5的APIpushState和replaceState去改变url但不会刷新页面,会触发popState事件,和hash模式原理一样,只是url更加美观,少了#,但是当用户刷新页面时,浏览器会向服务端发送请求,所以需要后端配置所有页面都重定向到根页面。
Vue?hash和history模式?router-view和router-link组件?$route即当前路由信息和$router即操作路由的方法。beforeRouteLeavebeforeEach守卫beforeRouteUpdate守卫beforeEnter守卫beforeRouteEnter守卫beforeResolve守卫afterEach守卫DOM更新beforeRouteEnter守卫中传给next的回调函数Vue实例上VueRouter对象installMatchercreateMatcher提供pathList/pathMap/nameMappathMap存放路径和组件相关信息match:根据新老路径匹配为transitionTo做铺垫transitionTo路径切换koa中间件原理一样)url变化router-viewrouter-view渲染的组件depth确定嵌套的深度router-link