使用 饿了么的 MintUI 组件
- 导入所有MintUI组件:
1 |
|
- 导入样式表:
1 |
|
- 在 vue 中使用 MintUI中的Button按钮和Toast弹框提示:
1 |
|
- 使用的例子:
1 |
|
Mint-UI中按需导入的配置方式
修改 .babelrc
1
2
3
4
5
6
7
8
9
10
11{
"presets": [
["es2015", { "modules": false }]
],
"plugins": [["component", [
{
"libraryName": "mint-ui",
"style": true
}
]]]
}导入所有babel-plugin-componen组件:
1 |
|
- 引入部分组件
1 |
|
- 使用的例子:
1 |
|
Mint-UI中按需导入的配置方式
使用 MUI 代码片段
注意: MUI 不同于 Mint-UI,MUI只是开发出来的一套好用的代码片段,里面提供了配套的样式、配套的HTML代码段,类似于 Bootstrap; 而 Mint-UI,是真正的组件库,是使用 Vue 技术封装出来的 成套的组件,可以无缝的和 VUE项目进行集成开发;
因此,从体验上来说, Mint-UI体验更好,因为这是别人帮我们开发好的现成的Vue组件;
从体验上来说, MUI和Bootstrap类似;
理论上,任何项目都可以使用 MUI 或 Bootstrap,但是,MInt-UI只适用于Vue项目;
注意: MUI 并不能使用 npm 去下载,需要自己手动从 github 上,下载现成的包,自己解压出来,然后手动拷贝到项目中使用;
- 导入 MUI 的样式表:
1 |
|
- 在
webpack.config.js
中添加新的loader规则:
1 |
|
- 根据官方提供的文档和example,尝试使用相关的组件
将项目源码托管到oschina中
点击头像 -> 修改资料 -> SSH公钥 如何生成SSH公钥
创建自己的空仓储,使用
git config --global user.name "用户名"
和git config --global user.email ***@**.com
来全局配置提交时用户的名称和邮箱使用
git init
在本地初始化项目使用
touch README.md
和touch .gitignore
来创建项目的说明文件和忽略文件;使用
git add .
将所有文件托管到 git 中使用
git commit -m "init project"
将项目进行本地提交使用
git remote add origin 仓储地址
将本地项目和远程仓储连接,并使用origin最为远程仓储的别名使用
git push -u origin master
将本地代码push到仓储中
App.vue 组件的基本设置
头部的固定导航栏使用
Mint-UI
的Header
组件;底部的页签使用
mui
的tabbar
;购物车的图标,使用
icons-extra
中的mui-icon-extra mui-icon-extra-cart
,同时,应该把其依赖的字体图标文件mui-icons-extra.ttf
,复制到fonts
目录下!将底部的页签,改造成
router-link
来实现单页面的切换;Tab Bar 路由激活时候设置高亮的两种方式:
- 全局设置样式如下:
1
2
3
4
5
6
.router-link-active{
color:#007aff !important;
}- 或者在
new VueRouter
的时候,通过linkActiveClass
来指定高亮的类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 创建路由对象
var router = new VueRouter({
routes: [
{ path: '/', redirect: '/home' }
],
linkActiveClass: 'mui-active'
});
实现 tabbar 页签不同组件页面的切换
将 tabbar 改造成
router-link
形式,并指定每个连接的to
属性;在入口文件中导入需要展示的组件,并创建路由对象:
1 |
|
使用 mt-swipe 轮播图组件
- 假数据:
1 |
|
- 引入轮播图组件:
1 |
|
在.vue
组件中使用vue-resource
获取数据
运行
cnpm i vue-resource -S
安装模块导入 vue-resource 组件
1 |
|
- 在vue中使用 vue-resource 组件
1 |
|
使用mui的tab-top-webview-main
完成分类滑动栏
兼容问题
和 App.vue 中的
router-link
身上的类名mui-tab-item
存在兼容性问题,导致tab栏失效,可以把mui-tab-item
改名为mui-tab-item1
,并复制相关的类样式,来解决这个问题;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30.mui-bar-tab .mui-tab-item1.mui-active {
color: #007aff;
}
.mui-bar-tab .mui-tab-item1 {
display: table-cell;
overflow: hidden;
width: 1%;
height: 50px;
text-align: center;
vertical-align: middle;
white-space: nowrap;
text-overflow: ellipsis;
color: #929292;
}
.mui-bar-tab .mui-tab-item1 .mui-icon {
top: 3px;
width: 24px;
height: 24px;
padding-top: 0;
padding-bottom: 0;
}
.mui-bar-tab .mui-tab-item1 .mui-icon~.mui-tab-label {
font-size: 11px;
display: block;
overflow: hidden;
text-overflow: ellipsis;
}tab-top-webview-main
组件第一次显示到页面中的时候,无法被滑动的解决方案:先导入 mui 的JS文件:
1
import mui from '../../../lib/mui/js/mui.min.js'
在 组件的
mounted
事件钩子中,注册 mui 的滚动事件:1
2
3
4
5
6mounted() {
// 需要在组件的 mounted 事件钩子中,注册 mui 的 scroll 滚动事件
mui('.mui-scroll-wrapper').scroll({
deceleration: 0.0005 //flick 减速系数,系数越大,滚动速度越慢,滚动距离越小,默认值0.0006
});
true}
滑动的时候报警告:
Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/5093566007214080
1
解决方法,可以加上* { touch-action: none; } 这句样式去掉。
原因:(是chrome为了提高页面的滑动流畅度而新折腾出来的一个东西) http://www.cnblogs.com/pearl07/p/6589114.html
https://developer.mozilla.org/zh-CN/docs/Web/CSS/touch-action
移除严格模式
babel-plugin-transform-remove-strict-mode
vue-preview
一个Vue集成PhotoSwipe图片预览插件