首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

关于Extjs的mixins跟plugin

2013-10-14 
关于Extjs的mixins和pluginmixins 用于实现多继承,由于extend只能实现单继承,使用mixins就很方便的让我们

关于Extjs的mixins和plugin
mixins 用于实现多继承,由于extend只能实现单继承,使用mixins就很方便的让我们从多个基类中继承方法,案例:

Ext.define('CanSing', {     sing: function() {         alert("I'm on the highway to hell...")     }});Ext.define('CanFly', {     fly: function() {         alert("I'm flying in the sky...")     }});Ext.define('CanRun', {     run: function() {         alert("I'm running...")     }});Ext.define('Musician', {     extend: ['CanSing']});Ext.define('Bird', {     extend: ['CanSing'],     mixins: ['CanFly','CanRun']})

类Musician使用了extend:['CanSing'],这样类Musician就拥有了sing方法。但是如果你还希望类Musician还能继承其它父类的方法,这时就需要mixins,如上所示Bird类拥有了fly,sing,run方法。

plugin 用来给已有组件增加新功能或定制化的功能,这个跟继承是不同的概念,plugin是有单独生命周期的,而且这个生命周期是由包含它的组件来管理的。而mixins是没用单独生命周期概念的,因为继承的方法就是组件自己的方法。案例:
Ext.define("My.panel",{extend:'Ext.grid.Panel',plugins: [Ext.create('Ext.grid.plugin.CellEditing', {clicksToEdit: 1})]});

这样grid就增加了一个单元格编辑的功能。

参考:
http://stackoverflow.com/questions/7298601/mixin-vs-plugin-what-to-choose
http://stackoverflow.com/questions/7298601/mixin-vs-plugin-what-to-choose

热点排行
Bad Request.