>[success] # button -- 按钮
1. **微信组件的[button](https://developers.weixin.qq.com/miniprogram/dev/component/button.html)** 和 **h5的button** 不同作为块级元素出现独占一行
2. 当设置 `size `属性时候才作为行内块元素
| 属性 | 类型 | 默认值 | 必填 | 说明 | 最低版本 |
| --- | --- | --- | --- | --- | --- |
| size | string | default | 否 | 按钮的大小 | [1.0.0](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
| type | string | default | 否 | 按钮的样式类型 | [1.0.0](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
| plain | boolean | false | 否 | 按钮是否镂空,背景色透明 | [1.0.0](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
| disabled | boolean | false | 否 | 是否禁用 | [1.0.0](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
| loading | boolean | false | 否 | 名称前是否带 loading 图标 | [1.0.0](https://developers.weixin.qq.com/miniprogram/dev/framework/compatibility.html) |
|hover-class |string| button-hover| 否 |指定按钮按下去的样式类。当 `hover-class="none"` 时,没有点击态效果| 1.0.0|
|hover-stop-propagation| boolean| false |否 |指定是否阻止本节点的祖先节点出现点击态 |1.5.0|
|hover-start-time |number |20 |否 |按住后多久出现点击态,单位毫秒| 1.0.0|
|hover-stay-time |number |70 |否 |手指松开后点击态保留时间,单位毫秒 |1.0.0|
>[info] ## 常见样式设置
![](https://img.kancloud.cn/34/1d/341d4fe274d0f79d17f786ced9256156_429x396.png)
* index.wxml
~~~html
<button>按钮</button>
<!-- 设置type 按钮的背景色 -->
<button type="default">按钮(白色 绿底)</button>
<button type="primary">按钮(绿色 灰底)</button>
<button type="warn">按钮(红色 灰底)</button>
<!-- 按钮尺寸 此时 是行内块元素 -->
<button size="mini">小尺寸</button>
<!-- plain 带边框 -->
<button size="mini" plain>小尺寸</button>
<!-- 禁用 -->
<button size="mini" disabled>小尺寸</button>
<!-- loading 加载 通过设置class 改变按钮颜色-->
<button size="mini" loading class="btn">小尺寸</button>
<!-- 按钮点击后呈现效果 -->
<button size="mini" hover-class="btn">hover效果</button>
~~~
* index.wxss
~~~
.btn {
background-color: orange;
color: #fff;
}
~~~
>[info] ## 事件交互
1. wx 也提供了不同场景下的触发按钮场景,这类场景需要设置`open-type`的类型,对应的类型要去和对应的事件进行触发绑定
![](https://img.kancloud.cn/83/45/8345b66af01dea21ea8ef65c9d1e6ff9_994x699.png)
* 类型对应事件
![](https://img.kancloud.cn/d2/1e/d21eec5b5bfb1103b4894d11b0c598ca_1025x545.png)
~~~html
<button open-type="contact" size="mini" type="primary">打开会话</button>
<button
open-type="getUserInfo"
bindgetuserinfo="getUserInfo1"
size="mini"
type="primary"
>
用户信息
</button>
<button size="mini" type="primary" bindtap="getUserInfo">用户信息2</button>
<button
size="mini"
type="primary"
open-type="getPhoneNumber"
bindgetphonenumber="getPhoneNumber"
>
手机号码
</button>
~~~
* index.js
~~~
Page({
getUserInfo() {
// 调用API, 获取用户的信息
// 1.早期小程序的API, 基本都是不支持Promise风格
// 2.后期小程序的API, 基本都开发支持Promise风格
wx.getUserProfile({
desc: 'desc',
// success: (res) => {
// console.log(res);
// }
})
.then(res => {
console.log(res);
})
},
getUserInfo1(e){
console.log(e);
},
getPhoneNumber(event) {
console.log(event);
},
})
~~~
2. 要说明情况 **[不推荐使用](https://developers.weixin.qq.com/community/develop/doc/000cacfa20ce88df04cb468bc52801) open-type="getUserInfo"获取用户信息,预计自2021年4月13日起,getUserInfo将不再弹出弹窗,并直接返回匿名的用户个人信息**
3. **推荐使用[wx.getUserProfile](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html)获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认**
![](https://img.kancloud.cn/5b/e7/5be7ad904209737342f28e6b7f267b62_414x355.png)
- 小程序了解
- webview 是什么
- Native App、Web App、Hybrid App
- 小程序架构模型
- 小程序配置文件
- app.js -- App函数
- 页面.js -- page
- 生命周期????
- 小程序 -- 页面wxml
- 小程序 -- WXS
- 小程序 -- 事件
- 小程序 -- 样式wxss
- 小程序 -- 组件开发
- 小程序 -- 组件插槽
- 小程序 -- 组件的生命周期
- 组件总结
- 小程序 -- 混入
- 小程序基本组件
- text -- 文本
- view -- 视图容器
- button -- 按钮
- image -- 图片
- scroll-view -- 滚动容器
- input -- 双向绑定
- 通用属性
- 小程序常用Api
- 微信网络请求
- 微信小程序弹窗
- 微信小程序分享
- 获取设备信息 / 获取位置信息
- Storage存储
- 页面跳转
- 小程序登录