wx小程序 - 组件化 - 实例提示组件

在这里插入图片描述
在这里插入图片描述
如上两图所示,样式内容就是如此,其中不管是提示title还是提示内容还是下面的按钮都是不同的;这也算是第一次写微信小程序的组件,感觉就是,主要是数据传用和方法传用。数据是在properties中,注意自定义的值类型和传入的值类型要一致;方法主要是利用this.triggerEvent

下面是代码
子组件wxml

<van-popup show="{{ show }}" round bind:close="onClose">
  <view class="tips-show-content">
    <view class="content-above">
      <view class="title">{{ content.title }}</view>
      <view class="content">{{ content.content }}</view>
    </view>
    <view class="content-btn">
      <view class="content-btn-cancell" bindtap="leftClick">{{ content.leftText }}</view>
      <view class="content-btn-confirm" bindtap="rightClick">{{ content.rightText }}</view>
    </view>
  </view>
</van-popup>

子组件js

Component({
  /**
   * 组件的属性列表
   */
  properties: {
    show: {
      type: Boolean,
      value: false
    },
    content: {
      type: Object,
      value: ''
    }
  },
  /**
   * 组件的方法列表
   */
  methods: {
    onClose(){
      this.setData({
        show: false
      });
    },
    leftClick(){ 
      this.triggerEvent('leftClick' )
    },
    rightClick(){
      this.triggerEvent('rightClick')
    }
  }
})

父组件wxml引用,记得在json中导入

// 注意这里的show - leftClick - rightClick和子组件中自己定义的要相同
<Tips show="{{ avatar_show }}" content="{{ tipContent }}" bind:leftClick="errorClick" bind:rightClick="comfirm" />

父组件js

data: {
        avatar_show: false, // 退出弹框
        tipContent: {  // 内容自定义
            title: '提示信息',
            content: '您确定要退出吗?',
            leftText: '点错了',
            rightText: '确定'
        }
    },
    //  如果像我一样左右的点击事件都是不同的,就在父组件里写,如果有都相同的,比如它的关闭onClose方法,就写在子组件中
    comfirm(){
        console.log('确认退出');
    },
    errorClick() {
        this.setData({
            avatar_show: false
        });
    },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值