vue-cli之Mint框架使用遇坑记
(会不定时更新)
Mint框架 --由饿了么技术团队研发为vue量身定做,主要适配移动端(还有个好像element是PC端)
坑一:引入 Mint UI
官方介绍了2种方法:
方法一:完整引入
只需要在main.js里面写入
```
import Vue from 'vue'
import MintUI from 'mint-ui'
import 'mint-ui/lib/style.css'
import App from './App.vue'
Vue.use(MintUI)
```
以上代码便完成了 Mint UI 的引入。需要注意的是,样式文件需要单独引入。
方法二:按需引入
借助babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。
首先,安装 babel-plugin-component:
`{
"presets": [ ["es2015", {"modules":false}] ],
"plugins": [
["component", [
{"libraryName":"mint-ui","style":true}
]]]
}`
状态:还未去解决,表示使用方法二测试的时候会出现无法引用到的情况
坑二:Toast 提示框报错
我天真的以为只要按照方法一的全局引入就可以,欢快的去使用我们Mint的所有东西了,BUT...BUT....BUT...
当我调用Toast的时候
经过一系列的排除、查看‘kengdie’文档,终于发现 原因(源码):
`
Vue.$messagebox = Vue.prototype.$messagebox = MessageBox;
Vue.$toast = Vue.prototype.$toast = Toast;
Vue.$indicator = Vue.prototype.$indicator = Indicator;
`
Toast并不是全局变量,所以在引用的时候 必须在需要引用的页面 <script>下
1.import { Toast } from 'mint-ui';
2.如果不想import 可以直接使用this.$toast('msg')
亲测都能成功
坑三:CSS样式覆盖
这个严格的来说不能算是Mint框架的坑,在使用Mint的框架的时候肯定不能完全采用原来的样式的,所以我们需要对应修改的时候就会出现明明写了样式,但是却没有生效,目前的解决方式是 :
1.<style>标签里面不加`scopped`;
2.使用less/sass等,用一个组件最外层的class包裹在里面写样式
或者可以在style里面引用一个单独写好的CSS也可以覆盖
坑四:axios POST请求跨域问题
在使用VUE的时候想到数据请求问题, 之前什么ajax用的太习惯,想到如果在VUE里面继续用可能太不方便还得引入JQuery,刚好vue除了axios插件专门针对vue项目需求,妥妥的看了一遍文档,直接上手去用,BUT ....然而。。。。我还是太天真
正打算美滋滋的看数据结构呢,结果来了这么一下
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin
what? 搞笑呢。。。
哎....开始各种查看文档 测试
最后得到了解决办法,还是基于官方文档在当前页面
`
import qs from 'qs'
`
然后使用qs库去操作参数
最终我看到了久违了的 200
坑四:router-link使用区分
很多时候我们写项目需要直接跳转第三方的链接地址,比如https://baidu.com或者https://taobao.com等
这个时候你会发现你去使用router-link愉快的写链接地址时,出现 页面打不开,查看代码地址是对的啊为啥呢 ,
一顿查看文档后发现,router-link支持本地router的路由跳转,不支持第三方,仔细看跳转后的链接就发现,它是在本地或者线上域名的后面直接加上了跳转地址,例如这样:http://locallhost:8080/https://www.baidu.com 这样浏览器就无法解析当前地址了,导致报错,所以还是需要用a标签来进行href的绑定
单纯的来看,单从这个标签的名称来看router-link 这个标签的头 router已经说明了就是router路由的功能配合使用 哈哈