博客列表 >微信小程序官方组件展示之基础内容button源码

微信小程序官方组件展示之基础内容button源码

软件事业部
软件事业部原创
2022年08月22日 11:25:51613浏览

以下将展示微信小程序之基础内容button源码官方组件能力,组件样式仅供参考,开发者可根据自身需求定义组件样式,具体属性参数详见小程序开发文档。
功能描述:
按钮。
属性说明:
WebView:

Skyline:

Bug & Tip
1.tip: button-hover 默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;}
2.tip: bindgetphonenumber 从1.2.0 开始支持,但是在1.5.3以下版本中无法使用wx.canIUse进行检测,建议使用基础库版本进行判断。
3.tip: 在bindgetphonenumber 等返回加密信息的回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。
4.tip: 从 2.21.2 起,对getPhoneNumber接口进行了安全升级,bindgetphonenumber 返回的信息中增加code参数,code是一个动态的令牌,开发者拿到code后需调用微信后台接口换取手机号。详情新版接口使用指南
5.tip: 从 2.1.0 起,button 可作为原生组件的子节点嵌入,以便在原生组件上使用 open-type 的能力。
6.tip: 目前设置了 form-type 的 button 只会对当前组件中的 form 有效。因而,将 button 封装在自定义组件中,而 form 在自定义组件外,将会使这个 button 的 form-type 失效。
示例代码:
JAVASCRIPT:

  1. const types = ['default', 'primary', 'warn']
  2. const pageObject = {
  3. data: {
  4. defaultSize: 'default',
  5. primarySize: 'default',
  6. warnSize: 'default',
  7. disabled: false,
  8. plain: false,
  9. loading: false
  10. },
  11. onShareAppMessage() {
  12. return {
  13. title: 'button',
  14. path: 'page/component/pages/button/button'
  15. }
  16. },
  17. setDisabled() {
  18. this.setData({
  19. disabled: !this.data.disabled
  20. })
  21. },
  22. setPlain() {
  23. this.setData({
  24. plain: !this.data.plain
  25. })
  26. },
  27. setLoading() {
  28. this.setData({
  29. loading: !this.data.loading
  30. })
  31. },
  32. handleContact(e) {
  33. console.log(e.detail)
  34. },
  35. handleGetPhoneNumber(e) {
  36. console.log(e.detail)
  37. },
  38. handleGetUserInfo(e) {
  39. console.log(e.detail)
  40. },
  41. handleOpenSetting(e) {
  42. console.log(e.detail.authSetting)
  43. },
  44. handleGetUserInfo(e) {
  45. console.log(e.detail.userInfo)
  46. }
  47. }
  48. for (let i = 0; i < types.length; ++i) {
  49. (function (type) {
  50. pageObject[type] = function () {
  51. const key = type + 'Size'
  52. const changedData = {}
  53. changedData[key] =
  54. this.data[key] === 'default' ? 'mini' : 'default'
  55. this.setData(changedData)
  56. }
  57. }(types[i]))
  58. }
  59. Page(pageObject)

WXML:

  1. <view class="page-body">
  2. <view class="btn-area" id="buttonContainer">
  3. <button type="primary">页面主操作 Normal</button>
  4. <button type="primary" loading="true">页面主操作 Loading</button>
  5. <button type="primary" disabled="true">页面主操作 Disabled</button>
  6. <button type="default">页面次要操作 Normal</button>
  7. <button type="default" disabled="true">页面次要操作 Disabled</button>
  8. <button type="warn">警告类操作 Normal</button>
  9. <button type="warn" disabled="true">警告类操作 Disabled</button>
  10. <view class="button-sp-area">
  11. <button type="primary" plain="true">按钮</button>
  12. <button type="primary" disabled="true" plain="true">不可点击的按钮</button>
  13. <button type="default" plain="true">按钮</button>
  14. <button type="default" disabled="true" plain="true">按钮</button>
  15. <button class="mini-btn" type="primary" size="mini">按钮</button>
  16. <button class="mini-btn" type="default" size="mini">按钮</button>
  17. <button class="mini-btn" type="warn" size="mini">按钮</button>
  18. </view>
  19. </view>
  20. </view>

WXSS :

  1. button{
  2. margin-top: 30rpx;
  3. margin-bottom: 30rpx;
  4. }
  5. .button-sp-area{
  6. margin: 0 auto;
  7. width: 60%;
  8. }
  9. .mini-btn{
  10. margin-right: 10rpx;
  11. }


版权声明: 本站所有内容均由互联网收集整理、上传,如涉及版权问题,我们第一时间处理。
原文链接地址:https://developers.weixin.qq.com/miniprogram/dev/component/button.html

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议