vue-router在多页应用中的缺陷

479 阅读1分钟

vue-router的应用场景

vue-router是Vue的SPA项目中路由的首要选择,可以配置hash和history两种模式。

在多页项目中的缺陷

但用vue做多页项目时,路由一般由服务端来做。这是因为多页项目中每个页面由不同的人编码。 如果我们在多页项目中使用vue-router:

在每个页面的app.js中引入vue-router作为插件:

import Vue from 'vue'
import vueRouter from 'vue-router'
import App from './app.vue'

Vue.use(vueRouter)

const router = new vueRouter([{
    path:'/path',
    component:resolve => require(['@/components/component_A'], resolve)
}])

new Vue({
    el:'#app',
    router,
    App
})

在多页项目中,经常会需要从一个页面跳转到另一个页面,比如page_A通过window.open()跳转到page_B的一个页面。这时,由于后端不支持路由到page_B,我们只能在page_A中使用前端路由。因此一旦有跳转页面的需求,需要两个页面都使用vue-router,这对于page_A的开发者来说很不方便。

如果有多个这类的需求,每个页面的开发者都需要引入vue-router,即使他们此前不需要vue-router。这不仅增加了每个人的开发量,也增大了构建包的体积。

解决方案

在Vue多页项目中,实现跨开发者的页面跳转,最好是放弃vue-router,老老实实使用多页开发。