在做一个界面复杂度非常的高应用时,它会有很多的状态,这样的应用显然不可能在每做一次操作后都刷新一个页面作为用户反馈。这就要这个应用有多个复杂的状态,同时这些状态还要对应到URL。有一个重要的功能叫做 deep-linking,也就是当用户浏览到一个URL,然后把它传给另外的人或者复制重新打开,应用需要直接渲染出这个URL对应的状态。这就意味着应用的URL和组件树的状态之间有一个映射关系,客户端路由的职责就是让这个映射关系声明式地对应起来。
若要自己实现一个这样的路由,看上去倒是很简单,用hash去模拟一下,就可以自己很快地做出很简单的路由。但事实上,客户端路由涉及很多更复杂的问题,如下图所示。
可能同一层的路由有多个不同的出口,还有着复杂的URL匹配规则,等等。这些问题如果都由自己去一一实现,那么复杂度是非常高的。而Vue基本都有对应的解决方案(router.vuejs.org)。配合Webpack还可以实现基于路由的懒加载,一条路径所对应的组件在打包的时候,会分离成另外一块,只有当该路由被访问的时候,才会被加载出来。这有相应的解决方案,同时也有实例。
原文:http://www.cnblogs.com/zhaodagang8/p/7819432.html