背景
公司开发了很多产品,分别对外销售,当购买了A产品的用户也想购买B产品,那就需要将B产品的代码复制到A产品的项目里来完成?那如果可以将每个产品都当作成npm包,购买哪个产品,只需要在main.js里install -> ues。就可以拥有该产品的功能。
要求后台
- 后台接口集成,能够互相调用,甚至和前端一样,引入就行了。
- 用户权限统一管理,控制返回有权限的功能菜单。
要求前端
-
组件化,去除每个页面都需要定义路由这步骤,统一简化
{path: '/login', name: 'login', component: Login},{path: '/**', name: 'main', component: Main} -
也是因为组件化,每个页面对应专门的id(集成后,各个产品里也不可重复),导出npm包temp
import TempIndexPage from './index/index.vue';const Loading = { install: function (Vue) { Vue.component("temp-index-page", TempIndexPage); }, // mmUI是集成这些页面的框架,同样也是可以封装成npm的包 load: function (mmUI) { mmUI.component('temp.index', TempIndexPage, { title: '模板管理' }); }};export default Loading; -
引入
import mmUI from 'mmUI' import temp from 'temp' import router from './router/index';import store from './store/index'; Vue.use(mmUI);mmUI.use(temp); mmUI.mount(App, "#app", { router, store});window.$mmui = mmUI;
大概就这样,已经测试出可行