Ext JS 4 笔记1
ExtJS4 引入了现在灰常流行的前端MVC。这在原本的3.3.1里面是没有的。
原先项目里为了实现相对的MVC,自己写了一个controller和model ,收集并且保持JS端的数据。
所以呢,这时候的文档结构就完全不一样了。原本的结构更像是传统 C# winform ,逻辑卸载页面的cs文件里。只有对于数据收集和数据保持才会放在C和M上,逻辑操作都是直接在V上写的。
不过前端MVC也是一个趋势,怎么说C#的webform 也已经被淘汰了,人家微软都出到 asp.net MVC3了。
增加了几个类:Ext.app.Application & Ext.app.Controller & Ext.app.EventBus
Ext.app.EventBus 就像是一个全局的MessageBus,文档里是说,NOTE This is a private utility class for internal use by the framework. Don't rely on its existence. 一般不建议使用的东西,都是我们可以着重研究的地方。以后如果需要全局MessageBus的话,我们为何不直接放到这个类里面呢?
Ext.app.Application
Represents an Ext JS 4 application, which is typically a single page app using a Viewport. A typical Ext.app.Applicationmight look like this:
name: 'MyApp',
launch: function() {
Ext.create('Ext.container.Viewport', {
items: {
html: 'My App'
}
});
}
});
对于Ext4来说,他认为,一个典型的使用Ext框架的应用,应该是一个RIA的,也就是说,用AJAX在一个页面里流转的。所以,他认为,你这个app应该使用了Viewport,上面这段代码定义了一些全局的变量,首先创建了'MyApp'这个类,包括他的所有需要的M、V和C。也就是说创建一个全局的namespace,不用像3里面那样到处需要长名字的namespace,需要定义Ext.ns();,为了避免长名字还不得不定义许多局部的短名变量。
当然我们可以更加符合MVC模式一些。
name: 'Blog',
models: ['Post', 'Comment'],
controllers: ['Posts', 'Comments'],
launch: function() {
...
}
});
这里只有 models 和 controllers 因为 views 应该是通过 controllers 来控制管理的。
扯出去点,在 C 里面定义 V :
extend: 'Ext.app.Controller',
views: ['posts.List', 'posts.Edit'],
//the rest of the Controller here
});
看到这里,觉得,Ext 是借鉴了 asp.net MVC 的很多东西。
看到这句话的时候我整个人都斯巴达了,尼玛,Sencha 又要推 Ext JS 4 SDK …… 估计也是和 Designer 一样坑爹的东西。扯开点说,他们家的工具,我觉得还是不要使用了,Designer 也好,这个 SDK 也罢。bug 太多。不靠谱的,其实本身用这个框架就有争议,又要回到上一篇的开始了 ……
看HK的人做的 Ext JS 3 to Ext JS 4 的upgrade的study,真想掐死他。
我还是坚持认为,如果要做upgrade,就推翻重新做。很多V上的逻辑本来就应该抽出来放在C,他们从来没人想过 architecture 上的东西。
最后,还是没忍住抱怨几句。
转载于:https://www.cnblogs.com/liyinkan/archive/2011/12/19/2293433.html
Ext JS 4 笔记1相关推荐
- EXt js 学习笔记总结
1. get . fly. getCmp .getBody .getDoc .getDom.. get-----ExtJs获取节点.dom.提供缓存机制 Ext.Element类是Ext对DO ...
- EXT.JS 学习笔记
store.loadData() loadData(object data, [Boolean append])从本地JavaScript变量中读取数据,append为true时,将读取的数据附加到原 ...
- 《深入浅出Ext JS》2.19全国首发
<深入浅出Ext JS>2.19全国首发 <深入浅出Ext JS>自选题立项以来,在JavaEye和博客园等知名技术社区内就已经引起了广泛的关注和强烈的反响.在写作和编辑阶段, ...
- node.js学习笔记
# node.js学习笔记标签(空格分隔): node.js---## 一 内置模块学习 ### 1. http 模块 ``` //1 导入http模块 const http =require('ht ...
- 【Ext.Net学习笔记】03:Ext.Net DirectEvents用法详解、DirectMethods用法详解
Ext.Net通过DirectEvents进行服务器端异步的事件处理.[Ext.Net学习笔记]02:Ext.Net用法概览.Ext.Net MessageBus用法.Ext.Net布局 中已经简单的 ...
- 使用cordova将Ext JS 6.2的Modern应用程序打包为安卓APP
近期使用Ext JS 6.2的Modern工具包写了一个应用程序,本意是作为一个移动应用程序,在移动端通过浏览器来访问的.但后来有个需求需要将应用程序打包为APP来实现,于是就尝试着使用cordova ...
- 千锋Node.js学习笔记
千锋Node.js学习笔记 文章目录 千锋Node.js学习笔记 写在前面 1. 认识Node.js 2. NVM 3. NPM 4. NRM 5. NPX 6. 模块/包与CommonJS 7. 常 ...
- Ext JS Designer 1.0.5 发布
ExtJS官方Blog上发布了Ext JS Designer新版本,版本号为1.0.5,这个版本添加了不少新特性,如直接修改title,config参数搜索等等.虽然这个版本仍然不支持代码生成,不过另 ...
- 【翻译】Ext JS 6 Beta发布
原文:Ext JS 6 Beta is Now Available 概述 Ext JS 6的好处 新的Ext JS功能和工具 需要你的反馈意见 概述 很高兴,Ext JS 6 beta版本现在发布了. ...
最新文章
- Linux进阶 vim grep sed awk 正则表达式
- VScode中html怎么引入js,vscode中如何使用typescript,如何自动编译成js文件
- 扫地机器人返充原理_扫地机器人原理是什么?
- 彻底卸载acer软件保护卡_宏碁(Acer)传奇 14英寸 新一代7nm六核处理器 真香机 高性能宏基笔记本电脑(R5-4500U 7纳米 16G 512GSSD )...
- Java基础入门笔记-关系操作符
- 一道实用linux运维问题的9种shell解答方法!
- 如何对大数据进行数据分析
- HTML5 API 浏览器支持情况检测
- 网络邻居上不显示计算机,网上邻居不显示或找不到自己电脑怎么办?
- libusb 串口 android,rk3399pro通过修改内核编译支持luat air720上网及串口通讯
- Android5.0系统下代码格式化sd卡方法
- 十余款新品惊艳亮相,华为春季旗舰新品发布会看点满满
- linux tuxedo查看服务进程数,tuxedo管理命令之tmboot与tmshutdown
- 信息学奥赛一本通:1194:移动路线
- R语言:无法精确计算带连结的p值
- 管理SQL Server AlwaysOn(5)——常规监控(1)——常规监控
- 《推荐系统实践》读书笔记3
- 2018年年初的面试经验谈
- 实战项目(一)嵌入式基础学习与上位机入门设计
- error C4996: ‘GetVersionExW‘: 被声明为已否决