小程序如何封装提示组件并且使用

  1. 封装组件toast
<!-- toast.wxml -->
<view class="toast" wx:if="{{isShowToast}}">
  <view class="tip">{{msg}}</view>
</view>

<!-- toast.wxss -->
.toast {
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

.toast .tip {
  padding: 16rpx 20rpx 14rpx 20rpx;
  background: rgba(0, 0, 0, 0.65);
  color: #fff;
  border-radius: 8rpx;
  font-size: 28rpx;
}

<!-- toast.js -->
/* properties里面接收的是对象 */
Component({
  properties: {
    isShowToast: {
      type: Boolean,
      value: false
    },
    msg: {
      type: String,
      value: ''
    }
  }
})

<!-- toast.json -->
/* 声明这是一个组件 */
{
  "component": true
}
复制代码
  1. 页面引用example
<!-- example.wxml -->
<input class="input" type="number" placeholder="请输入手机号" value="{{phone}}" bindinput="inputPhone"/>
<button type="primary" size="mini" bindtap="submit">提交</button>
<toast isShowToast="{{isShowToast}}" msg="{{msg}}"></toast> /* 把参数传递给toast组件 */

<!-- example.wxss -->
@import './toast.wxss';

<!-- example.js -->
import { vailPhone } from 'utils/vailFormat.js'  /* 要使用必须先导入 */
Page({
  data: {
    isShowToast: false,
    msg: '',
    phone: ''
  },
  inputPhone (e) {
    this.setData({{
      phone: e.detaiil.value
    })
  },
  submit () {
    vailPhone(this.data.phone, this)
  }
})

<!-- example.json -->
/* 声明要使用的toast组件 */
{
  "usingComponents": {
    "toast": "/component/toast/toast"
  }
}

复制代码
  1. vailFormat.js
function toast (msg, self) {
  self.setData({
    isShowToast: true,
    msg: msg
  })
  setTimeout(() => {
    self.setData({
      isShowToast: false
    })
  }, 2000)
}

function vailPhone (phone, self) {
  var reg = /^1[3|5|6|7|8]\d{9}$/
  if (phone == '') {
    toast('请输入手机号', self)
    return false
  } else if (!reg.test(phone)) {
    toast('请输入正确的手机号', self)
    return false
  } else {
    return true
  }
}

/* 一定要导出 别的地方才可以使用 */
module.exports = {
  vailPhone: vailPhone
}
复制代码

转载于:https://juejin.im/post/5b7bc18e518825430f2ffa68

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值