针对PC端,element-ui可谓是首选了,UI体验效果很好。

element-ui 框架官网:http://element.eleme.io/#/zh-CN/component/installation

mint-ui 也是饿了么出品的UI框架(主要是针对移动端),其框架官网: http://mint-ui.github.io/docs/#/en2/quickstart

针对移动端项目,有些为了偷工减料,可以选择性的利用现成的UI框架。但是用了之后遇到了一些坑。

1.按需加载:按需引入的方式,我们不必要引入全部的UI组件,需要用什么就选择性的用什么,这样可以减小我们项目的体积,加快加载速度。

但是按照官网提示来操作,发现会报错。

正确的做法是:

修改 .babelrc文件配置

主要是 在 plugins 后添加

  1. ["component", [
  2. {
  3. "libraryName": "mint-ui",
  4. "style": true
  5. }
  6. ]]

完整的 .babelrc文件代码为:

  1. {
  2. "presets": [
  3. ["env", {
  4. "modules": false,
  5. "targets": {
  6. "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
  7. }
  8. }],
  9. "stage-2"
  10. ],
  11. "plugins": [
  12. "transform-vue-jsx",
  13. "transform-runtime",
  14. ["component", [
  15. {
  16. "libraryName": "mint-ui",
  17. "style": true
  18. }
  19. ]]
  20. ],
  21. }

在入口文件引入需要用到的UI组件

  1. import {
  2. DatetimePicker,
  3. Toast,
  4. Indicator,
  5. Picker,
  6. Popup
  7. } from 'mint-ui'
  8. Vue.component(DatetimePicker.name, DatetimePicker)
  9. Vue.component(Toast)
  10. Vue.component(Indicator)
  11. Vue.component(Picker.name, Picker)
  12. Vue.component(Popup.name, Popup);

比如现在我只需要用mint-ui 框架中的 DatetimePicker , Toast , Indicator , Picker , Popup

这样就可以全局引入这些UI组件了。

官网提示说

  1. Vue.component(Button.name, Button)
  2. Vue.component(Cell.name, Cell)
  3. /* 或写为
  4. * Vue.use(Button)
  5. * Vue.use(Cell)
  6. */

但是发现写成  Vue.use(Toast)  在页面初始化时会出现一个小黑点后消失,其实这是Toast样式里面的padding 起的作用。也就是  Vue.use(Toast)   会在页面加载时初始化。

所以为了避免出现这个问题,采用 Vue.component 引入方式比较好。

2.使用了Toast 或者 Indicator等组件时,按照官方文档,这样写就会出现“Uncaught ReferenceError: Toast is not defined”的错误

错误截图为

Toast 被当做是未知的变量,

此时的做法是 引入了Toast 就需要把该变量暴露到全局对象里面

  1. window.Toast= Toast
  2. window.Indicator= Indicator
  3. ...

3.Toast等组件避免重复弹出,按需关闭

比如 在做表单验证时,表单输入不能为空,一直点 提交按钮,会一直出现Toast 组件,而这时之前的Toast并没有完全消息,这里前端处理的时候需要设置下标记,判断Toast是否存在

另外 有这样的需求,比如在 登录页面,用户提交表单后,登录成功,会跳转到新的页面。而这时 Toast需要过2秒才消失,在进入另外一个页面我们会发现 此时的Toast 仍然存在。

此时的做法是:

  1. var toastFlag = ''
  2.  
  3. //把Toast赋值给一个新的变量
  4. toastFlag = Toast("登陆成功")
  5.  
  6. //beforeDestroy生命周期关闭Toast
  7. beforeDestroy:function(){
  8. toastFlag && toastFlag.close()
  9. }

4. 引入 Datetime picker 组件,时间选择数据少,当前时间的10年前和未来的10年

但是某些项目中,需要更多选择年份的需求。该插件提供了 startDate  和 endDate 属性

  1. :startDate="new Date('1970/12/31 12:00:00')"
  2. :endDate="new Date('2100/12/31 12:00:00')"

上面例子 意思是选择 1970 ~ 2100 年份的数据

VUE项目中使用mint-ui框架总结的更多相关文章

  1. 在Vue项目中使用Element UI:按需引入和完整引入

    下面操作在main.js文件中进行 完整引入: import Element from 'element-ui'; //样式文件,需单独引入 import 'element-ui/lib/theme- ...

  2. vue项目中使用element ui上传图片到七牛

    1.获取token值 后台有接口调用直接返回token值 //请求后台拿七牛云token async getQiniuToken() { //token let uploadtoken = await ...

  3. vue项目中导出PDF的两种方式

    参考大家导出的方式,基本上是如下两种: 1.使用 html2Canvas + jsPDF 导出PDF, 这种方式什么都好,就是下载的pdf太模糊了.对要求好的pdf这种方式真是不行啊! 2.调用浏览器 ...

  4. Vue项目的创建和UI资源

    Vue项目创建打包与UI资源 1.Vue项目创建 1.1 vue-cli脚手架 vue-cli是一个基于vue的构建工具,用于搭建vue项目的环境,有着兼容,方便,快速的优点,能够完全遵循前后端分离的 ...

  5. Vue项目中如何使用Element-UI以及如何使用sass

    Vue项目中如何使用Element-UI以及如何使用sass 当我们在开发Vue项目的时候通常会选择Element-UI作为我们的UI框架,其官方中文文档地址是http://element.eleme ...

  6. 在vue项目中安装使用Mint-UI

    一.Mint UI 是 由饿了么前端团队推出的 一个基于 Vue.js 的移动端组件库,具有以下特性:       使用文档: http://mint-ui.github.io/#!/zh-cn Mi ...

  7. vue入坑教程(二)在vue项目中如何导入element以及sass

    在项目中导入element以及sass.stylus等方便开发的工具以及UI框架 (1)如何在vue项目中导入elementUI框架 elementUI是饿了么团队开发出来基于vue的前端UI框架,其 ...

  8. vue 项目中实用的小技巧

    # 在Vue 项目中引入Bootstrap 有时在vue项目中会根据需求引入Bootstrap,而Bootstrap又是依赖于jQuery的,在使用npm按照时,可能会出现一系列的错误 1.安装jQu ...

  9. 十、VueJs 填坑日记之在项目中使用Amaze UI

    上一篇博文,我们把jQuery集成到了项目中,今天我们来集成Amaze ui(妹子UI).先来介绍一下妹子UI.Amaze UI 含近 20 个 CSS 组件.20 余 JS 组件,更有多个包含不同主 ...

  10. vue项目中遇到的一些问题

    或访问:https://github.com/littleHiuman/experiences-about-vue  欢迎补充! vuex 状态 vue-cli 命令行 vue vue vue-rou ...

随机推荐

  1. 使用visualStudio2017创建一个简单的控制台程序

    步骤: 1.  打开visual studio开发工具 2. 选择文件>新建>项目 如下图所示: 3. 选择window金典桌面>控制台应用程序 并填写好想项目名称和选择项目存储地址 ...

  2. js正则表达式替换HTML标签以及空格(&nbsp;)

    参考:范仁义 js代码: function filter(text) { var reg = /<[^<>]+>/g;//1.全局匹配g肯定忘记写,2.<>标签中不 ...

  3. 基于Kubernates微服务案例

    企业业务上云的三种架构 容器的三个视角 从运维角度 数据工程师角度 开发角度微服务化 12 Factor Related Reference: https://kubernetes.io/https: ...

  4. MyBatis之整合Spring

    MyBatis之整合Spring 整合思路: 1.SqlSessionFactory对象应该放到spring容器中作为单例存在 2.传统dao的开发方式中,应该从spring容器中获得sqlSessi ...

  5. 002. https通信(CA证书认证 + 密钥商定 )

    服务端与客户端建立https通信的过程: 一.认证:客户端第一次访问服务端时,要求服务端证明自己可被信任 1.证书:由服务端申请.第三方CA颁发的,存放在服务端的证书: 证书包含:服务端的公钥.服务端 ...

  6. SuperMap iObject入门开发系列之一组件式GIS开发平台介绍

    本文是一位好友“炀炀”授权给我来发表的,介绍都是他的研究成果,在此,非常感谢.平台介绍:SuperMap iObjects Java/.NET 是面向GIS应用系统开发者的组件式GIS开发平台,具有强 ...

  7. selenium-确认进入了预期页面

    selenium确认进入了预期页面 在自动化操作中,浏览器每次进入一个新的需要,都需要确认该页面是否打开或打开的页面是否是预期的页面 需要进行确认页面后方可进行下一步操作 确认页面有很多中方法,像每个 ...

  8. WIn10系统软件默认安装c盘后消失看不见问题

    一.win10系统下c盘,program 文件下 软件一般为32 或者 64位,但是现在win10系统有些C盘会显示program  x86 向这种情况的话我们的软件默认安装在这个盘的话可能会造成很多 ...

  9. Web前端教程2-CSS教程

    目录 1. CSS基本语法 1.1. CSS基本定义 1.2. CSS布局属性 1.3. CSS文本常用属性 2.CSS选择器 2.1. 标签选择器 2.2. id选择器 2.3. 类选择器 2.4. ...

  10. June 28th. 2018, Week 26th. Thursday

    You cannot change the circumstances but you can change yourself. 既然改变不了环境,那就改变自己. From Jim Rohn. Rec ...