-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
实现独占模式需要考虑:
- 事件名约定
eg. 如果事件名为”change:index”,那独占模式的属性名应该为什么?onChange:Index?? - onTrigger事件,与其他通过on方法绑定的事件,执行顺序如何?
DOM中的实现还是按照绑定顺序。QWrap是先执行独占事件函数,再执行其他处理函数。
不提供独占模式的理由:
- ins.onTrigger = function() {}
ins.on(’trigger’, function() {})
使用起来差不多,没有方便很多 - 实现的话,事件名,独占函数名的约定较多,用户学习成本更高
替代方案:
给开发者,和使用者提供方便的注册事件方式:
对于开发者:
var MyWidget = Widget.extend({
attrs: {
index: 0
},
_onChangeIndex: function() { // … }
});
可在extend第一个参数的对象中,通过_onChangeIndex属性绑定事件。初始化时,会给实例绑定change:index事件。并且不会将_onChangeIndex方法放到prototype上。
对于使用者:
var ins = new MyWidget({
onChangeIndex: function() { // … }
});
可通过在config定义onChangeIndex, 绑定事件。初始化时,会给实例绑定change:index事件。并且不会将onChangeIndex方法放到prototype上。
Metadata
Metadata
Assignees
Labels
No labels