Vue插件之MintUI

标签: Vue 分类: Javascript 创建时间:2019-06-17 06:08:01 更新时间:2024-11-15 10:49:44

为了开发移动端页面,我使用了vue-cli3.x和饿了么团队出品的mint-ui组件库(至于vux,这个组件库好像功能更加的丰富,内容也更多,除了组件之外,还有其他的一些内容,不过官方没有适配vue-cli3x,查阅资料,也是很麻烦的样子,我只使用少数的功能,所以暂时放弃了。好像有赞的库更好一点,不仅功能丰富,还更新很快,已经有文档说明了vue cli3.0的按需引入)。使用组件库,当然免不了要按需引入了。按照官方说明,操作步骤如下:

(1) vue create test创建工程

(2) yarn add mint-ui -S安装mint-ui.

(3) yarn add babel-plugin-component -D安装按需引入的插件.

(4) 修改babel.config.js文件为:

1
2
3
4
5
6
7
8
9
10
11
module.exports = {
"presets": [
["es2015", { "modules": false }]
],
"plugins": [["component", [
{
"libraryName": "mint-ui",
"style": true
}
]]]
}

(5) yarn serve运行项目,结果奇怪的事情发生了,竟然报错,提示什么组件应该是一个对象。

详细错误如下:

有点让人摸不着头脑。查了很多资料,都没有类似的解决方法,于是我尝试换个解决方式

1.创建工程

这个还是和以前一样,具体可以参考我都另一篇文章Post not found: Vue-Cli-3-0使用说明 Vue Cli 3.0使用说明

2.直接安装babel-plugin-component

执行:yarn add babel-plugin-component -D,这一步就是跳过安装mint-ui这一步,直接安装babel-plugin-component,为啥这样做,谁知道呢?

3.修改babel.config.js文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
module.exports = {
presets: [
'@vue/app'
],
plugins:[
[
"component",
{
"libraryName": "mint-ui",
"style": true
}
]
]
}

4.安装mint-ui

再次执行yarn add mint-ui -S,安装mint-ui。这样颠倒过来顺序,运行就没有问题了,确实挺蛋疼的。

5.使用mint-ui

在main.js中全局引入button,在helloword组件中使用mt-button

1
2
3
4
5
6
import Vue from 'vue'
import App from './App.vue'
import { Button, Cell } from 'mint-ui'

Vue.component(Button.name, Button)
Vue.component(Cell.name, Cell)

6.运行

这个时候执行yarn serve,就可以运行了。效果图:

安装顺序都很重要,不知道什么原理。

放弃mint-ui了,尝试Vant
(1)卸载mint-ui,yarn remove mint-ui -S

(2)卸载babel-plugin-component,yarn remove babel-plugin-component -D

(3)删除bebal.config.js中的plugin选项

(4)安装vant,yarn add vant -S

(5)安装bebal-plugin-import,yarn add babel-plugin-inport -D

(6)修改bebal.config.js

1
2
3
4
5
6
7
8
9
10
11
12
module.exports = {
presets: [
'@vue/app'
],
plugins: [
['import', {
libraryName: 'vant',
libraryDirectory: 'es',
style: true
}, 'vant']
]
}

(7)使用vant

1
2
3
4
import App from './App.vue'
import { Button } from 'vant'

Vue.use(Button)
小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。