mandMobile是滴滴开源的专门面向金融场景的Vue移动端UI组件库(非金融类也可以用),最近我司正在孵化一个金融类产品,本人准备使用。
对初次使用者来说,按照官方文档来,多少会踩一些坑或者不顺畅,下面是我初次使用之后的总结。另外,本小记也会持续更新,记录使用中的各种问题。如果各位在使用中也遇到了问题,欢迎留言交流,我们一起提bug😄哈哈哈。
npm i mand-mobile -S 复制代码
全局引入
如果使用 import { Button } from 'mand-mobile';
的写法会引入 mand-mobile 下所有的模块.
为了提高提升打包和浏览器下载速度,推荐使用按需引入
你可以通过以下方式按需引入
import Button from 'mand-mobile/lib/button' import 'mand-mobile/lib/mand-mobile.css' // 样式单独引入 复制代码
这样可以将组件按需引入,但是样式还是全部引入。
更好的方法是使用 插件 babel-plugin-import
cnpm i babel-plugin-import --save-dev
module.exports = { "plugins": [ ["import", { "libraryName": "mand-mobile", "libraryDirectory": "lib", "style": true // 文档说无需配置style,可能是默认值为true吧 }] ] }; 复制代码
import { Button } from 'mand-mobile';
module.exports = { plugins: [ require('postcss-pxtorem')({ rootValue: 75, // 结果为:设计稿元素尺寸/75 minPixelValue: 2, // 小于等于 2 的元素不做处理 propWhiteList: [] }) ] } 复制代码
如果想要忽略单个属性不做转化,最简单的方法是在像素单元声明中使用大写PX,例如有些字体不需要转换。至此,项目接入该UI库完成。
我们有两种方式定制主题:一种是css样式覆盖,一种是样式变量覆盖
第一种方式是我们自己写一套样式主题,然后全局引入,强行覆盖掉原来的样式,稍微有点不太优雅,但是也没什么不可以的。
第二种是文档上介绍的,即覆盖样式变量,这种方式需要我们做一些配置:
import 'mand-mobile/lib/mand-mobile.css';
样式就可以出现了,但是不能加上它,因为我们要通过覆盖样式变量的方式来定制主题。 .md-button position relative display block height button-height // 样式变量 line-height button-height // 样式变量 font-size button-font-size // 样式变量 font-weight button-font-weight // 样式变量 font-family font-family-normal text-align center border none border-radius button-radius // 样式变量 box-sizing border-box 复制代码
所以我们只需要引入这些变量,样式就可以正常显示了,然后我们通过覆盖这些变量的值就可以改变主题了。关键是我们要如何引入这些变量。
theme.custom.styl,
然后在这里引入样式变量@import '~mand-mobile/components/_style/mixin/util' @import '~mand-mobile/components/_style/mixin/theme.components' @import '~mand-mobile/components/_style/mixin/theme.basic' // 安装并引入css拓展nib(可选) @import '~nib/lib/nib/vendor' @import '~nib/lib/nib/gradients' 复制代码
module.exports = { css: { loaderOptions: { stylus: { import: [resolve(`.src/assets/theme.custom`)] // 根据你项目的实际情况配置路径 } } } } 复制代码
这个时候基本上就可以了,但是还有一个样式文件需要引入,就是全局样式,因为是在component文件夹,so这个样式也要我们单独引入进来,在你的入口文件(mian.is)加入以下代码即可
import 'mand-mobile/components/_style/global.styl' 复制代码
如果有些属性没有生效,看看是不是UI库版本太低了
其实,总体而言,mandMobile还是相当贴心的,提供的组件也很丰富且灵活,相信它在金融类产品中使用它还是很香的,推荐大家使用,毕竟金融类产品的业务逻辑还是比较复杂的。