gpt4 book ai didi

Extjs4 MVC、Ext.define() 和 Ext.create()

转载 作者:行者123 更新时间:2023-12-04 15:01:53 28 4
gpt4 key购买 nike

首先,我的问题是我想知道 Ext.Define() 和 Ext.Create() 之间有什么不同,
我想知道如何以正确的方式使用它们。

我查看了我的代码和许多 Extjs4 MVC 教程,

我在 Extjs4 MVC 项目中发现了很多 Ext.define() 方法。

我理解 Ext.define() 方法创建一个对象(CLASS)。

如果我只是需要一个面板,我不会对面板进行任何继承,也不会在初始化后重用面板。

然后,我想我需要使用 Ext.create() 而不是 Ext.define()。

所以,我尝试更改我的代码@.@;

看来,这是

Ext.Define("App.view.MyGrid",{
extend : 'Ext.grid.panel',
alias : 'widget.MyGrid',
initComponent : function(){
this.columns : [{ header: 'column' }];
this.store : Ext.create('Ext.data.ArrayStore', {})
}
});

我改为,
var myGrid = Ext.create('Ext.grid.Panel', {
layout: 'fit',
border: false,
columns: [{ header: 'column' }],
store: Ext.create('Ext.data.ArrayStore', {})
});

更改代码后,出现无法检索(grep)Controller中的面板的问题,

在我以前这样做之前,
refs: [
{
ref: 'myGrid',
selector: '',
xtype: 'MyGrid', //view - alias
autoCreate: true
}
]

this.getMyGrid();

但更改后,我不知道如何在 Controller 中检索该面板。

在搜索网络以了解如何使用 grep 时,我只是想知道 ' 我对 Ext.define() 和 Ext.create() 的理解是否正确?为什么很多人都在使用 Ext.define() 方法,即使他们不再使用也不是为了继承? '

请建议我了解 Extjs 的基础知识。

谢谢!

最佳答案

我的 2c:我 总是 定义东西,然后创建它(除非它是一个 2 线组件)。这意味着我总是可以在其他地方重用组件,甚至不必考虑我是否愿意。
Ext.define还会在页面加载时创建错误,而不是组件初始化/构造(取决于代码的编写方式),至少对我来说,这使调试更容易。

还有,好像Ext.define实际上更快,这是一个大问题。 http://jsperf.com/extjs-create-vs-define-create
Ext.define还倾向于简化架构(因为它迫使您考虑将要调用的组件,以及自动加载器的文件名(顺便说一句,这是使用 Ext.define http://docs.sencha.com/ext-js/4-1/#!/api/Ext.Loader 的另一个原因) )
Ext.define , 与 requires关键字,还可以让您创建 sencha 的自定义构建
通过 sdk ( http://www.sencha.com/products/sdk-tools/ ) 打包 - 我有点不确定这是在 ExtJS 4 中使用的,还是仅用于接触。

尽管唱出了它的优点,但它绝对是在文件数量之间进行权衡,这本身就是一种复杂性。

关于Extjs4 MVC、Ext.define() 和 Ext.create(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11891583/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com