本文地址:http://blog.csdn.net/sushengmiyan/article/details/38331347

本文作者:sushengmiyan

-------------------------------------------------------------------------------------------------------------------

翻译来源:http://docs.sencha.com/extjs/5.0.0/getting_started/welcome_to_extjs.html

--------------------------------------------------------------------------------------------------------------------

这篇指引提供了一个简单的ext js介绍,我们会从讨论建立一个简单的hello world例子开始我们的体验。我们会接着讲解在extjs中代码是怎样的结构,这个指导同样也会包括一些其他可以使用的资源的链接,所以,你应该尽可能的多看一些来提升你对ext的认知程度。

helloworld

----------------------

来体验ext js 5很简单,我们先创建一个文件夹,将ext5包放入(下载地址:http://download.csdn.net/detail/sushengmiyan/7701943),再创建一个简单的html文件,建立如下的目录结构,如图:

我们命名的index.html的内容如下:

<html>
<head>
<title>Welcome to Ext JS!</title>
<link rel="stylesheet" type="text/css" href="ext-5.0.0/build/packages/ext-theme-neptune/build/resources/ext-theme-neptune-all.css">
<script type="text/javascript" src="ext-5.0.0/build/ext-all.js"></script>
<script type="text/javascript" src="ext-5.0.0/build/packages/ext-theme-neptune/build/ext-theme-neptune.js"></script> <script type ="text/javascript" src="app.js"></script>
</head>
<body></body>
</html>

像jQuery或者AngularJS囊括了html的声明标记,但是ext js不是这样,你只需要在我们内部类辅助系统和js中书写就够了。你可以看到像如下结构的例子:

Ext.create('Ext.Panel', {
renderTo : Ext.getBody(),
width : 200,
height : 150,
bodyPadding : 5,
title : 'Hello World',
html : 'Hello <b>World</b>...'
});

现在讲上述代码嵌入到你的app.js文件中,在index.html同级目录下新建app.js内容粘贴上去即可。

如果你现在刷新页面,你可能无法看到运行结果,因为现在框架还没有被完全加载。这就是为什么我们需要在应用程序中增加launch()函数,这个函数是当页面准备结束的时候就被调用。

现在我们给app.js内容替换为如下:

Ext.application({
name: "ExtJSTest",
launch: function(){
Ext.create('Ext.Panel', {
renderTo : Ext.getBody(),
width : 200,
height : 150,
bodyPadding : 5,
title : 'Hello World',
html : 'Hello <b>World</b>...'
});
}
});

在IE8中运行有提示错误,但是在chrom中完全可以,看到如下结果:

这个例子说明了开始ext js 5是多么简单,从这里,天空是你的极限。你可以探索ext js 5的许多功能通过研究我们的例子,它们给出了框架工具盒能力的伟大介绍。

ext-all.js

----------

我们应该注意到,index.html中ext-all.js和ext-them-neptune.css是被完全包含进来的,这个对于我们练习来说是合适的,但是当你想只用框架的部分来发布应用程序的时候就不太适合了。你可以根据你的工程的需要来简化你的框架。

你可以参考 getting started guide 来获取更多的关于这方面的extjs5和sencha cmd 的介绍。

请继续阅读关于extjs5的核心。

什么是extjs

------------------------

Ext JS 5是一个JavaScript应用程序框架,它为您提供了一整套工具用于创建跨平台的应用程序。Ext JS 5支持所有现代浏览器,IE8的最新版本以及Chrome和介于两者之间的。

Ext JS是面向对象的、基于类库的,这意味着它的设计允许您的应用程序范围从单个开发人员到多团队的企业。让我们打破这些概念的一些你不熟悉的术语。

面向对象编程

面向对象编程(OOP)是一个模块化的方式设置为可重用的代码,使碎片。这也使代码更易于维护比常见的“内联”脚本编码与许多其他JavaScript库。
而不是使一个巨大的项目,说计划可以分为连接部分,最终,会让事情更容易维护和规模。
阅读更多关于面向对象编程的基础知识。

类和对象

OOP的关键概念包括类和对象。一个类是一个抽象的定义应用程序的一个组件。这是一个简单的抽象基础水平的“东西”。这个类可以作为表示类的对象实例。在这一点上,抽象的对象包含的所有信息,除了任何其他部分的扩展。

现在我们开始另一个例子来展示extjs的类系统,我们还是从上述的index.html和app.js开始。

我们先来定义一个类:我们定义一个panel类如下:

Ext.define(
'MyApp.MyPanel',
{ extend : 'Ext.Panel', title : 'Hello World', html : 'Hello <b>World</b>...' });

你可以看到,我们定义了一个东西叫做MyPanel,它继承于ext js panel类 现在我们可以使用这个模板来创建一个新的对象。

或许我们需要两个面板,他们之间的唯一区别就是内容不一样,我们就可以创建两个实例,现在你的app.js内容应该像下面这样:

Ext.define(
'ExtJSTest.MyPanel',
{ extend : 'Ext.Panel', title : 'Hello World', html : 'Hello <b>World</b>...' }); Ext.application({
name: "ExtJSTest",
launch: function(){ Ext.create('ExtJSTest.MyPanel', {
renderTo : Ext.getBody(),
title : 'MyFirst Panel',
html : 'MyFirst Panel'
});
Ext.create('ExtJSTest.MyPanel', {
renderTo : Ext.getBody(),
title : 'MySecend Panel',
html : 'MySecend Panel'
});
}
});

刷新index.html可以看到如下效果:

如你所见,这可以让你重复使用一段基代码,但是也可以达到我们不同的需要。虽然这是一个简单的例子,使用和扩展Ext JS类是一个非常强大的机制,将帮助您创建清洁和可维护的代码。
你可以阅读更多关于我们班的内部系统。
注意:这个方法是“嵌入”例如目的。如果你写一个真正的应用程序中,您会MyApp.view.MyPanel视图在一个单独的文件。此外,在控制器中创建语句会或发射()函数。
你可以在这里阅读更多关于应用程序体系结构。

比helloWorld更深一层

----------------------------------------------

你现在已经看到了我们创建helloworld的例子,如果你对sencha 框架式不熟悉的话,它可能看起来像稍微正常语法,你可能需要创建一些那么简单的东西。让我们看看网格,这样你可以看到最真实的情况下如何利用少量的语法来创建真正令人印象深刻的输出。

在这个例子中,我们会产生Ext.grid.panel,其中包含一行编辑插件和几行数据。查看此示例,只需你app.js文件的内容替换为以下代码:

Ext.application({
name : 'MyApp', launch : function() { Ext.widget({
renderTo : Ext.getBody(),
xtype : 'grid',
title : 'Grid',
width : 650,
height : 300,
plugins : 'rowediting',
store : {
fields : [ 'name', 'age', 'votes', 'credits' ],
data : [
[ 'Bill', 35, 10, 427 ],
[ 'Fred', 22, 4, 42 ]
]
},
columns: {
defaults: {
editor : 'numberfield',
width : 120
},
items: [
{ text: 'Name', dataIndex: 'name', flex: 1, editor: 'textfield' },
{ text: 'Age', dataIndex: 'age' },
{ text: 'Votes', dataIndex: 'votes' },
{ text: 'Credits', dataIndex: 'credits' }
]
}
})
}
});

当你刷新浏览器的时候,可以看到如下效果:

你在这里看到的是一个功能齐全的Ext JS网格。这个网格包含可排序的可移动的列也是可拖放的。这些列可以利用网格头下的列选项的下拉菜单显示和隐藏。这个网格还包含一行通过双击激活任何行的编辑器。这些行包含可编辑的文本字段和一个有用的和有吸引力的用户界面。
    真正神奇的事情是,你得到这个在大约30行代码。这种功能带有网格在默认情况下,这意味着更少的时间添加功能。唯一的添加到这个示例是行编辑器,它只需要一行配置被添加到您的网格。

这应该说明一旦你熟悉语法Ext JS可以节省你多少时间。最后,你节省时间和用户与应用程序功能丰富的经验。

注意:在一个真实世界的例子,您将使用一个单独的存储和模型来填充你的网格数据。
你可以在我们的应用程序架构指南中阅读更多关于Ext.data.store和Ext.data.model

下节内容:

--------------------

既然你已经看到了启动是如此的简单,那么你就可以看一些比较高深的知识了。

你可以在如下地址找到extjs的doc文档:http://docs.sencha.com/extjs/5.0.0/

下一步我们就要学习:

1.set up and geting started

2.the class system

3.layouts and containers

4.enwents in ext js

5.examples

[ExtJS5学习笔记]第四节 欢迎来到extjs5-手把手教你实现你的第一个应用的更多相关文章

  1. [ExtJS5学习笔记]第十七节 Extjs5的panel组件增加accodion成为折叠导航栏

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/39102335 官方例子:http://dev.sencha.com/ext/5.0.1 ...

  2. [ExtJS5学习笔记]第六节 Extjs的类系统Class System命名规则及定义和调试

    本文地址: http://blog.csdn.net/sushengmiyan/article/details/38479079 本文作者:sushengmiyan ----------------- ...

  3. [ExtJS5学习笔记]第五节 使用fontawesome给你的extjs5应用增加字体图标

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/38458411本文作者:sushengmiyan-------------------- ...

  4. [ExtJS5学习笔记]第五节 使用fontawesome给你的extjs5应用添加字体图标

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/38458411本文作者:sushengmiyan-------------------- ...

  5. [ExtJS5学习笔记]第十节 Extjs5新增特性之ViewModel和DataBinding

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/38612721 本文作者:sushengmiyan ------------------ ...

  6. [ExtJS5学习笔记]第二十一节 Extjs5中使用config配置给ext.widget或者create方法传递参数

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/39252805 官方例子:http://docs.sencha.com/extjs/5. ...

  7. [ExtJS5学习笔记]第二十节 Extjs5配合数组的push方法,动态创建并加载组件

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/39226773 官方例子:http://docs.sencha.com/extjs/5. ...

  8. [shiro学习笔记]第四节 使用源代码生成Shiro的CHM格式的API文档

    版本为1.2.3的shiro API chm个事故文档生成. 获取shiro源代码 编译生成API文档 转换成chm格式 API 获取shiro源代码 shiro官网: http://shiro.ap ...

  9. [ExtJS5学习笔记]第二十七节 CMD打包错误 Error C2009: YUI Parse Error (identifier is a reserved word => debugger;)

    本文地址:http://blog.csdn.net/sushengmiyan/article/details/41242993 本文作者:sushengmiyan ------------------ ...

随机推荐

  1. 5650 so easy

    so easy  Accepts: 512  Submissions: 1601  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 6553 ...

  2. 例10-5 uva12716

    题意:gcd(a,b) = a^b,( 1≤ a , b ≤ n) 思路: ① a^b = c, 所以 a^c = b,而且c是a的约数,枚举a,c,再gcd判断 ② 打表可知 a-b = c,而且a ...

  3. PHP 扩展开发检测清单(扩展开发必读)

    想要做出一个成功的 PHP 扩展包,不仅仅是简单的将代码放进文件夹中就可以了,除此之外,还有非常多的因素来决定你的扩展是否优秀.以下清单的内容将有助于完善你的扩展,并且在 PHP 社区中得到更多的重视 ...

  4. 【Tensorflow系列】使用Inception_resnet_v2训练自己的数据集并用Tensorboard监控

    [写在前面] 用Tensorflow(TF)已实现好的卷积神经网络(CNN)模型来训练自己的数据集,验证目前较成熟模型在不同数据集上的准确度,如Inception_V3, VGG16,Inceptio ...

  5. 美链BEC合约漏洞技术分析

    这两天币圈链圈被美链BEC智能合约的漏洞导致代币价值几乎归零的事件刷遍朋友圈.这篇文章就来分析下BEC智能合约的漏洞 漏洞攻击交易 我们先来还原下攻击交易,这个交易可以在这个链接查询到. 我截图给大家 ...

  6. 数据结构之并查集Union-Find Sets

    1.  概述 并查集(Disjoint set或者Union-find set)是一种树型的数据结构,常用于处理一些不相交集合(Disjoint Sets)的合并及查询问题. 2.  基本操作 并查集 ...

  7. 【python进阶】Garbage collection垃圾回收2

    前言 在上一篇文章[python进阶]Garbage collection垃圾回收1,我们讲述了Garbage collection(GC垃圾回收),画说Ruby与Python垃圾回收,Python中 ...

  8. net框架运行原理

    核心是CLR(通用语言运行时), c#或者其它各种语言编译原理:将原代码通过相对的编译器(语法检查原代码分析)生成IL代码托管(IL也称托管代码),最后得到一个托管模块,一个或多个托管模块组成程序集( ...

  9. Laravel-admin 使用Layer相册功能

    使用Laravel-admin后台,Laravel-admin已经集成了很多前端组件,但是在手册中也没有发现能够展示相册的插件,而本人比较喜欢Layer弹窗的插件所以想使用Layer来进行效果展示 通 ...

  10. 关于ubuntu14.04LTS 64位 播放优酷视频

    起因:chrome无法播放优酷视频,然后换firefox发现居然没有装flash 插件. 解释:关于chrome在网上看到了不少说法,说chrome新版本的不支持adobe flash之类的,但是这些 ...