封装vant weapp按钮之后如何触发提交事件?
111111111111111
vant-weapp是有赞出品的,前端组件库,既然出自有赞之手,必然是尤其适合于做一个商城项目,它移植于vant-ui,后者有的特性大部分都已经实现。vant-ui找了好久,都没有发现购物车业务组件,我就从自家的有赞精选这个小程序的购物车搬一份过来。
针对问题:如何在封装vant weapp按钮后触发提交事件?
<van-button class="my-btn" bindtap="onSubmit">{{btnText}}</van-button>
其中,class为自定义的样式类名,btnText是自定义的按钮文本,onSubmit为自定义的提交事件的处理函数名。
Component({
properties: {
btnText: String
},
methods: {
onSubmit() {
console.log('click submit');
this.triggerEvent('submit');
}
}
})
其中,properties中定义了btnText属性,用于在页面中绑定自定义按钮文本;onSubmit为自定义的提交事件处理函数,通过this.triggerEvent()方法来触发自定义的submit事件。
<custom-btn btn-text="提交" bind:submit="onSubmitHandler"></custom-btn>
其中,custom-btn为自定义组件名,btn-text属性用于绑定自定义按钮文本,bind:submit用于绑定自定义的提交事件处理函数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 触发此事件,使用者只需要绑定该事件名称的事件就可以获取提交响应