vimo
Version:
A Vue2.x UI Project For Mobile & HyBrid
143 lines (95 loc) • 6.84 kB
Markdown
<h1 align="center"><p align="center"><img src="https://github.com/vm-component/Vimo/blob/master/examples/static/img/vimo.png?raw=true" alt="vimo" width="200"></p><p align="center">Hello Vimo</p></h1>
<p align="center"><a href="https://www.travis-ci.org/vm-component/vimo"><img src="https://www.travis-ci.org/vm-component/vimo.svg?branch=master" alt="Build Status"></a> <a href='https://coveralls.io/github/vm-component/vimo?branch=master'><img src='https://img.shields.io/coveralls/vm-component/vimo.svg?branch=master' alt='Coverage Status' /></a> <a href="https://www.npmjs.com/package/vimo"><img src="https://img.shields.io/npm/v/vimo.svg" alt="npm version"></a> <a href="https://www.npmjs.com/package/vimo"><img src="https://img.shields.io/npm/dm/vimo.svg" alt="npm downloads"></a> <a href="https://standardjs.com"><img src="https://img.shields.io/badge/code_style-standard-brightgreen.svg" alt="standardjs"></a> <a href="#"><img src="https://img.shields.io/github/license/vm-component/Vimo.svg" alt="liense"></a> </p>
<h4 align="center"><p align="center">A H5 Platform For Hybrid</p></h4>
## DEMO
<p align="center"><img src="https://github.com/vm-component/Vimo/blob/master/examples/static/img/vimo_qrcode.png?raw=true" alt="vimo" width="200"><br><a align="center" href="https://vm-component.github.io/vimo-demo">https://vm-component.github.io/vimo-demo</a></p>
## FEATURE
### 移动端H5组件库
VImo是一套移动端H5组件库,包括移动端开发常用到的组件。 目前已经完成[86个组件](https://github.com/vm-component/vimo/tree/master/src/components)编写,测试还在覆盖中。
### 样式自由更改
Vimo继承了Ionic的样式集,默认情况下可以根据平台自行切换皮肤(上面的二维码可使用IOS或者Android扫码体验),当然,这也为开发定制符合自己公司UI规范的主题提供了可能。此外,也可以通过[node-sass](https://link.jianshu.com/?t=https://github.com/sass/node-sass)的[options.data](https://link.jianshu.com/?t=https://github.com/sass/node-sass#data)的方式覆盖主题变量。关于主题定制,可参考[《关于组件库的主题定制》](http://www.jianshu.com/p/c6d7e6bf3987)。
### 支持JSSDK集成
为了满足一套H5在不同Webview中兼容,Vimo在初始化时能根据不同平台(微信、支付宝、钉钉等)的特性,调用平台提供的模块方法,比如:在普通浏览器使用H5的ActionSheet,而在支付宝或钉钉中使用JSSDK提供的ActionSheet,可以无缝兼容(需要配好platform-config.js,上面的二维码可使用支付宝扫码体验)。
### 集成布局组件
这里说的组件是:App、Nav、Page、Content、Header、Footer等。
- App组件是浏览器的代理,能设置滚动状态、页面可点击状态、标题设置等
- Nav组件用于页面切换转场动画的控制(盒式布局)
- Page组件是路由指向的根组件,用于设置当前页面的布局,支持流式布局和盒式布局
- Content组件是内容组件,可以监听内容滚动事件、支持下拉刷新和上拉刷新组件等
- Header、Footer是头尾组件,能配合Cotent完成页面布局,比如位置预留、自动隐藏等
## HOW TO START
### 使用npm自行搭建
自行搭建需要对Vimo项目比较熟悉,这里强烈推荐使用`vimo-start-kit`开始,如果Vimo版本不正确,请使用`npm install vimo`自行升级。
#### 下载
```bash
$ npm install vimo@latest --save
```
#### 安装
```js
import { App, Content, Footer, Header, Nav, Navbar, Page, Install } from 'vimo'
// ----------------------
// 平台基础安装
Vue.use(Install, {
custConf: APP_CONFIGS,
pltConf: PLATFORM_CONFIGS,
router: router
})
// 全局注册的组件(核心组件)
Vue.component(App.name, App)
Vue.component(Nav.name, Nav)
Vue.component(Navbar.name, Navbar)
Vue.component(Page.name, Page)
Vue.component(Header.name, Header)
Vue.component(Content.name, Content)
Vue.component(Footer.name, Footer)
// ----------------------
```
其余部分参考标准的文件组织结构:[Demo示例](https://github.com/vm-component/vimo-start-kit/tree/master/src)。
### 使用种子项目
Vimo项目初始化种子```vimo-start-kit```,包括自定义主题文件。点击进入项目地址:[vimo-start-kit](https://github.com/vm-component/vimo-start-kit)。
## LAZY SCHEME
### babel-plugin-import
Vimo支持```babel-plugin-import```按需加载方式,每个组件都是一个入口,可在项目中单独使用不必安装。关于如何配置参考下面代码:
```json
{
"presets": [
[
"env",
{
"modules": false
}
],
"stage-2"
],
"plugins": [
"transform-runtime",
[
"import",
{
"libraryName": "vimo",
"libraryDirectory": "lib/components"
}
]
]
}
```
## THEME CUSTOMIZATION
### 样式覆盖
在业务代码中覆盖组件样式,这种写法会增大样式文件的体积,并且样式优先级不太好控制,可以用在小项目中开发,不建议长期使用。关于样式优先级的介绍参考这里:[《CSS优先级计算及应用》](http://www.jianshu.com/p/1c4e639ff7d5)。
### Fork一份只修改主题引用(推荐)
> 当前方案适合构建符合你公司内部UI规范的移动端组件库。
Vimo组件库编写使用的是Vue提供的```*.vue```单文件模式构建,但是样式文件是引入外部```style.scss```样式。例如:
```text
├── index.js // 组件导出
├── loading.vue // 组件构建
├── style.scss // 样式归总
├── style
| ├── loading.ios.scss // IOS主题
| ├── loading.md.scss // MD主题
| └── loading.scss // 其余构建相关文件
```
这样做是为了主题的定制不影响组件主结构更新,你可以Fork项目,自行修改```style```文件夹中样式文件及```style.scss```中样式引用。如果Vimo主结构更新,那就用master分支代码更新你当前Fork的项目即可。
### 主题变量替换(推荐)
变量替换是所有组件库都推荐的方案,因为这是一个简单修改就能直接看到效果的方案(前提是配好```sass-loader```参数)。正如上面所提到,Vimo继承了Ionic的样式集,默认情况下可以根据平台自行切换皮肤。如果不满于,也可以通过[node-sass](https://link.jianshu.com/?t=https://github.com/sass/node-sass)的[options.data](https://link.jianshu.com/?t=https://github.com/sass/node-sass#data)的方式覆盖主题变量。关于主题定制,可参考[《关于组件库的主题定制》](http://www.jianshu.com/p/c6d7e6bf3987)。
## LICENSE
MIT