Skip to content

事件机制,是否支持独占模式 #1

Description

@melonHuang

实现独占模式需要考虑:

  1. 事件名约定
    eg. 如果事件名为”change:index”,那独占模式的属性名应该为什么?onChange:Index??
  2. onTrigger事件,与其他通过on方法绑定的事件,执行顺序如何?
    DOM中的实现还是按照绑定顺序。QWrap是先执行独占事件函数,再执行其他处理函数。

不提供独占模式的理由:

  1. ins.onTrigger = function() {}
    ins.on(’trigger’, function() {})
    使用起来差不多,没有方便很多
  2. 实现的话,事件名,独占函数名的约定较多,用户学习成本更高

替代方案:

给开发者,和使用者提供方便的注册事件方式:

对于开发者:
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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions