封装vant weapp按钮之后如何触发提交事件

封装vant weapp按钮之后如何触发提交事件?
111111111111111

img

img

  • 你可以参考下这篇文章:使用vant weapp组件做左拉删除功能
  • 除此之外, 这篇博客: 用vant-weapp写一个购物车中的 vant-weapp介绍 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • vant-weapp是有赞出品的,前端组件库,既然出自有赞之手,必然是尤其适合于做一个商城项目,它移植于vant-ui,后者有的特性大部分都已经实现。vant-ui找了好久,都没有发现购物车业务组件,我就从自家的有赞精选这个小程序的购物车搬一份过来。

  • 以下回答由chatgpt基于相关博客总结生成:

    针对问题:如何在封装vant weapp按钮后触发提交事件?

    1. 首先,需要在封装的组件wxml代码中引入vant weapp的按钮组件,并添加相应的class和绑定事件。 代码示例:
    <van-button class="my-btn" bindtap="onSubmit">{{btnText}}</van-button>
    

    其中,class为自定义的样式类名,btnText是自定义的按钮文本,onSubmit为自定义的提交事件的处理函数名。

    1. 在组件的js文件中,需要定义上述的事件处理函数,并通过this.triggerEvent()方法来触发事件。 代码示例:
    Component({
      properties: {
        btnText: String
      },
      methods: {
        onSubmit() {
          console.log('click submit');
          this.triggerEvent('submit');
        }
      }
    })
    

    其中,properties中定义了btnText属性,用于在页面中绑定自定义按钮文本;onSubmit为自定义的提交事件处理函数,通过this.triggerEvent()方法来触发自定义的submit事件。

    1. 在使用该封装组件的页面中,需要引入自定义组件,并添加相应的组件属性和绑定事件处理函数。 代码示例:
    <custom-btn btn-text="提交" bind:submit="onSubmitHandler"></custom-btn>
    

    其中,custom-btn为自定义组件名,btn-text属性用于绑定自定义按钮文本,bind:submit用于绑定自定义的提交事件处理函数onSubmitHandler。

    1. 在使用自定义组件的页面的js文件中,需要定义onSubmitHandler事件处理函数,用于处理自定义的提交事件。 代码示例:
    Page({
      onSubmitHandler() {
        console.log('submit handler');
        //TODO: 处理提交逻辑
      }
    })
    

    其中,onSubmitHandler为自定义的提交事件处理函数,用于处理提交逻辑。


在封装 vant weapp 按钮组件之后,可以通过 triggerEvent 触发提交事件。例如:
js
Component({
  properties: {
    // 这里定义属性,提交事件名称为submitEvent
    submitEvent: {
      type: String,
      value: 'submit'
    }
  },
  methods: {
    // 点击按钮时触发 submitting 事件
    onClick() {
      // 触发父组件定义的提交事件
      this.triggerEvent(this.data.submitEvent)
    }
  }
})
然后在使用这个按钮组件的页面中,可以绑定 submit 事件来响应:
html
<van-button submit-event="submit">提交</van-button>
js
Page({
  onSubmit(e) {
    console.log(e)
  }
})
这样,当点击提交按钮时,会触发 onSubmit 方法,从而实现提交事件。
总结来说,封装组件后要提供一个属性来定义提交事件名称,然后在方法中通过 triggerEvent 触发此事件,使用者只需要绑定该事件名称的事件就可以获取提交响应