基于vue和webpack的前端集成开发框架
$ npm install -g vue-cli
$ vue init litor/ubase-template my-project
$ cd my-project
$ npm install
$ npm run dev
单app模式
src/
├── components/
├── pages/
│ ├── page1
│ │ ├── page1.i18n.js // 国际化文件
│ │ ├── pag1.vue // 主文件
│ │ ├── page1.service.js //service
│ │ └──page1.state.js // 状态文件
│ ├── index.html // 必须
│ ├── routes.js // 可选
│ ├── config.json // 可选
│ └── ...
└── statics/
├── images/
└── ...
多app模式
src/
├── components/
├── pages/
│ ├── app1
│ │ ├── index.html
│ │ ├── routes.js
│ │ ├── config.json
│ │ └── ...
│ ├── app2
│ │ ├── index.html
│ │ ├── routes.js
│ │ ├── config.json
│ │ └── ...
│ └── ...
└── statics/
├── images/
└── ...
名称 | 描述 | 类型 | 默认值 | 备注 |
---|---|---|---|---|
autoImportVueComponent | 是否自动加载vue组件(应用目录及components目录) | Boolean | true | |
alias | 配置别名 | Object | -- | |
langs | 支持的语言列表 | Array | ['cn'] | 此处列出的语言,需要在各个.i18n.js文件中export出来 |
dest | 输出路径 | String | './www' | |
port | 端口 | string | '8081' | |
proxy | 代理 | Array | -- | { source: '/jcsj-apps-web', target: 'http://res.wisedu.com:8000' } |
自动识别, 如果有.i18n.js文件,则添加国际化功能
// test.i18n.js
var cn = {
title: 'helloworld'
};
export default { cn };
在js中的使用方式
Vue.t('test.title')
在template中的使用方式
$t('test.title')
直接写.state.js文件即可 在.vue文件中通过下面方式引用:
computed: {
ps(){
return this.$store.state.test // 此处对应获取的是test.state.js文件中的状态
}
},
vue中使用sass方式
<style lang="sass" rel="stylesheet/scss">
...
</style>
该配置文件异步获取,而是不打包进项目js中,所以部署后仍然可以去修改配置 配置文件的内容在.vue文件中可以通过this.$root.config获取
如果没有手动配置route.js, 则自动寻找应用下的index.vue或index/inde/index.vue作为根路由
通过Ubase全局变量管理
Ubase.updateState(arg1, arg2) // 其中arg1为state.js的前缀,arg2为待更新中的状态值 {'title': 'helloworld'}或者 {'info.name': ' xiaoming'}
例如:如果要更新page1.state.js中的状态{info:{name:'zhangsan'}},则Ubase.upateState('page1', {'info.name': 'xiaoming'})
Ubase.getState(arg) // arg为state.js的前缀 即要获取状态的文件
Ubase.invoke(arg1, arg2) // 其中arg1为(vue文件的前缀.该文件methods下的方法), arg2为传的参数
例如:如果要调用page1.vue的methods配置项中的reload方法,则Ubase.invoke('page1.reload', '3')
注:仅当config.json中"DEBUG"配置项为true时才输出日志