mandMobile是滴滴开源的专门面向金融场景的Vue移动端UI组件库(非金融类也可以用),最近我司正在孵化一个金融类产品,本人准备使用。

对初次使用者来说,按照官方文档 来,多少会踩一些坑或者不顺畅,下面是我初次使用之后的总结。另外,本小记也会持续更新,记录使用中的各种问题。如果各位在使用中也遇到了问题,欢迎留言交流,我们一起提bug:smile:哈哈哈。

1. 首先安装

npm i mand-mobile -S

2. 引入

全局引入

如果使用  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

使用插件,添加babel.config.js或者.babelrc.js文件,添加以下配置

module.exports = {

"plugins": [

["import", {

"libraryName": "mand-mobile",

"libraryDirectory": "lib",

"style": true // 文档说无需配置style,可能是默认值为true吧

}]

]

};

配置之后,你可以直接在项目中这样使用了: import { Button } from 'mand-mobile';

这样组件和样式都是按需引入了,而且相对来说少写了几行代码,如果引入的组件多的情况下配置一下还是比较有用的。

3. 配置postcss.config.js或者.postcssrc.js

module.exports = {

plugins: [

require('postcss-pxtorem')({

rootValue: 75, // 结果为:设计稿元素尺寸/75

minPixelValue: 2, // 小于等于 2 的元素不做处理

propWhiteList: []

})

]

}

如果想要忽略单个属性不做转化,最简单的方法是在像素单元声明中使用大写PX,例如有些字体不需要转换。至此,项目接入该UI库完成。

4. 如何定制主题

我们有两种方式定制主题:一种是css样式覆盖,一种是样式变量覆盖

第一种方式是我们自己写一套样式主题,然后全局引入,强行覆盖掉原来的样式,稍微有点不太优雅,但是也没什么不可以的。

第二种是文档上介绍的,即覆盖样式变量 ,这种方式需要我们做一些配置:

首先修改 babel.config.js,将libraryDirectory的值改为 "components",components这个文件夹存放的是所有组件。改完之后重新运行,这时候你会发现你的样式都没有了,原因是 components中少了一些东西,可以跟lib文件夹对比一下,例如下图所示是lib文件夹下的而components没有这些,如果这时你加上  import 'mand-mobile/lib/mand-mobile.css'; 样式就可以出现了,但是不能加上它,因为我们要通过覆盖样式变量的方式来定制主题。

如何覆盖呢?其实components中的组件是有样式的,只不过这些样式的值都是样式变量,而组件内部并没有引入变量,比如看下Button的源码,它的其中一些样式是这样的

.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'

引入之后还需配置一下webpack让它在我们的项目中生效,我是用的是vue-cli3,所以在vue.config.js中做如下配置:

module.exports = {

css: {

loaderOptions: {

stylus: {

import: [resolve(`.src/assets/theme.custom`)] // 根据你项目的实际情况配置路径

}

}

}

}

这个时候基本上就可以了,但是还有一个样式文件需要引入,就是全局样式,因为是在component文件夹,so这个样式也要我们单独引入进来,在你的入口文件(mian.is)加入以下代码即可

import 'mand-mobile/components/_style/global.styl'

参考

全局样式变量   和 组件样式变量 ,在  theme.custom.styl  中设置这些值,就可以自定义主题了。

5. 项目开始

如果有些属性没有生效,看看是不是UI库版本太低了

6. 小结

其实,总体而言,mandMobile还是相当贴心的,提供的组件也很丰富且灵活,相信它在金融类产品中使用它还是很香的,推荐大家使用,毕竟金融类产品的业务逻辑还是比较复杂的。

到此这篇关于Html5踩坑记之mandMobile使用小记的文章就介绍到这了,更多相关Html5使用mandMobile内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!

强行调用html5,Html5踩坑记之mandMobile使用小记相关推荐

  1. python从入门到实践django看不懂_Python编程:从入门到实践踩坑记 Django

    <>踩坑记 Django Django Python 19.1.1.5 模板new_topic 做完书上的步骤后,对主题添加页面经行测试,但是浏览器显示 服务器异常. 个人采用的开发环境是 ...

  2. Spring @Transactional踩坑记

    @Transactional踩坑记 总述 ​ Spring在1.2引入@Transactional注解, 该注解的引入使得我们可以简单地通过在方法或者类上添加@Transactional注解,实现事务 ...

  3. android小程序_小程序踩坑记

    小程序踩坑记 希望这个文章能尽量记录下小程序的那些坑,避免开发者们浪费自己的生命来定位到底是自己代码导致的还是啥神秘的字节跳变原因. 前记 小程序大多数坑是同一套代码在不同平台上表现不一致导致的,微信 ...

  4. go nil json.marshal 完是null_字节跳动踩坑记#3:Go服务灵异panic

    这个坑比较新鲜,刚填完,还冒着冷气. - 1 - 在字节跳动,我们服务的所有 log 都通过统一的日志库采集到流式日志服务.落地 ES 集群,配上字节云超(sang)级(xin)强(bing)大(ku ...

  5. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记

    前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...

  6. 微信小程序踩坑记——ColorUI组件的使用

    微信小程序踩坑记--组件的使用 组件类型 ColorUI Vant weapp ColorUI 首先贴上官网链接:官网链接,GitHub链接 简介 ColorUI是一个css库!!!在你引入样式后可以 ...

  7. 口罩、安全帽识别比赛踩坑记(二) 比赛流程及 SSD / YOLO V3 两版本实现

    本篇文章主要对比赛流程中的各个环节进行展开说明,并对笔者践行过的代码及更改的地方进行记录.如哪里有侵权请联系笔者进行删除.另外在这里对比赛举办方表示感谢 ~ ~ 其中开源代码会在整理后放在github ...

  8. Go 语言踩坑记——panic 与 recover

    题记 Go 语言自发布以来,一直以高性能.高并发著称.因为标准库提供了 http 包,即使刚学不久的程序员,也能轻松写出 http 服务程序. 不过,任何事情都有两面性.一门语言,有它值得骄傲的优点, ...

  9. 东八区转为0时区_踩坑记 | Flink 天级别窗口中存在的时区问题

    ❝ 本系列每篇文章都是从一些实际的 case 出发,分析一些生产环境中经常会遇到的问题,抛砖引玉,以帮助小伙伴们解决一些实际问题.本文介绍 Flink 时间以及时区问题,分析了在天级别的窗口时会遇到的 ...

  10. 服务器重新部署踩坑记

    服务器重新部署踩坑记 Intro 之前的服务器是 Ubuntu 18.04 ,上周周末想升级一下服务器系统,从 18.04 升级到 20.04,结果升级升挂了... 后来 SSH 始终连不上,索性删除 ...

最新文章

  1. c++以空格分开的输入数组_技术贴,MATLAB矩阵与数组汇总讲解
  2. Python连接Oracle数据库,以字典形式返回结果
  3. spring 扫描所有_从Spring的几个阶段理解其工作过程
  4. s4800扫描电镜的CSS3_日立S4800扫描电镜中文使用手册
  5. c#中常用集合类和集合接口之集合类系列
  6. 智能小车37:异常在ARM、JAVA、硬件里的实现
  7. C# 很基础的那些东西
  8. 图像相似度对比分析软件,图像相似度对比分析法
  9. 这个 bug,硬是让我折腾了一周
  10. 5.2为每种类型的模块内聚举一个例子
  11. 测评Mimick模型对词向量重构效果
  12. 售价6815万元,95后加密艺术家推出“Dream Chaser”NFT系列作品
  13. pandas操作excel,matplotlib.pyplot画图插入到excel,处理复杂excel简单练习
  14. 用户场景分析的四要素是什么?
  15. InstructGPT
  16. win7 C盘的User文件夹转移到D盘
  17. 奔驰激活carplay手机互联系统编程改装 成都蔚一名车汇
  18. 102道java算法
  19. 一个或多个数据库无法访问,因而不会在数据库访问选项卡中显示
  20. 网络营销、网络推广必备工具网站大全

热门文章

  1. 虚拟机配置opc服务器,组态王怎么配置成opc服务器
  2. 攻防世界----mfw
  3. 奔腾服务器处理器性能,英特尔服务器出奇招 用奔腾M代替至强处理器
  4. 大一新生的第一篇博客
  5. unity学习、unity培训、unity企业培训、U3D资源、U3D培训视频U3D教程、U3D常见问题、U3D项目源码
  6. nginx验证微信文件
  7. 台州银行笔试考什么_历年台州银行笔试和面试经验分享
  8. 人人商城二次开发 各个装修模块diypage的自定义样式
  9. 【懒人必备神器】教你用Python做一个自动抽奖程序啦~
  10. 一:log4j2配置文档