mui (Mobile UI) 是一款基于 HTML5+CSS3+JavaScript 技术实现的前端框架,主要用于开发移动应用 UI 界面。mui 和 uni-app 一样,都是由 DCloud 公司开发推出的跨平台开发框架,支持多个平台(iOS、Android、H5、微信小程序等)。
那么,如何在微信小程序中使用 mui 开发呢?接下来,本文将从技术实现原理和详细介绍两个方面进行阐述。
一、技术实现原理
1.1 MUI 样式处理
微信小程序的样式处理和 mui 略有区别,mui 样式需要动态注入到小程序中,具体实现方式如下:
step1:下载 mui.min.css 和 mui.min.js,把它们放到小程序目录下。
step2:在代码中引入 mui.min.css 和 mui.min.js。
```
Hello MUI
```
step3:在 onReady 函数中调用 mui 核心代码 mui.init()。
```
onReady: function () {
mui.init();
}
```
1.2 MUI DOM 操作
在 mui 中,DOM 类处理函数需要通过 init 获取,需要注意的是,在小程序中 mui.init() 的调用时机必须在DOM准备好后(例如,onReady 这个生命周期函数中)才能调用,否则会出现无法获取 DOM 的情况。具体实现方式如下:
```
onReady: function () {
mui.init();
// DOM 节点对象处理
var btn = document.getElementById('btn');
btn.addEventListener('tap', function(event) {
mui.alert('Hello MUI');
}, false);
}
```
二、详细介绍
2.1 MUI 常见使用方式
a) 按钮:mui-button
按钮是页面的一个常见元素,mui-button 样式制定了 text、raised、fab、icon、mini 等属性,支持文本、图标、角标等。
```
```
b) 表格:mui-table
表格一般需要滚动,但是 table 标签不能滚动,需要使用 div 实现,样式制定了 text、striped、bordered、hover、condensed 等属性。
```
```
c) 列表:mui-table-view
列表常用于展示数据,样式制定了 text、media、link、media-object 等属性,支持下拉刷新、上拉加载等功能。
```
```
d) 图片:mui-media
图片是页面的常用元素,mui-media 可以实现图片与文本共存的效果。
```
描述
```
2.2 MUI 扩展插件使用
a) MUI 确认框
mui.confirm 可以弹出一个 Confirm 对话框,样式可以自定义,按钮文本内容可以自定义,可以自定义回调事件。
```
mui.confirm('确定要删除吗?', '删除确认', ['取消', '确定'], function(e) {
if (e.index == 1) {
console.log('删除!');
}
});
```
b) MUI 提示框
mui.alert 可以弹出一个 Alert 对话框,样式可以自定义,按钮文本内容可以自定义,可以自定义回调事件。
```
mui.alert('Hello MUI', '提示', null, function() {
console.log('点击了确定!');
});
```
c) MUI 选择框
mui.picker 可以弹出一个 Picker 对话框,样式可以自定义,选项可以自定义,可以自定义回调事件。
```
var data = [{
value: 'beijing',
text: '北京'
}, {
value: 'guangzhou',
text: '广州'
}, {
value: 'shenzhen',
text: '深圳'
}];
var picker = new mui.PopPicker();
picker.setData(data);
var showPickerButton = document.getElementById('showPicker');
showPickerButton.addEventListener('tap', function(event) {
picker.show(function(items) {
console.log(items[0].value);
});
}, false);
```
三、总结
本文介绍了使用 mui 开发微信小程序的技术实现原理和常用扩展插件的使用方式,并通过代码示例进行了详细阐述。使用 mui 开发微信小程序能够大幅度提升开发效率和 UI 界面的美感,非常值得一试。