ExtDash——基于ExtJS 5的MVC后台开发框架

从2012年接触ExtJS开发以来,一直觉得,ExtJS功能强大令人叹为观止。然而,使用ExtJS开发一款应用并不是一件容易的事,虽然它本身已经是一款高度封装的框架,但完全面向对象的架构、大量的组件、配置项、方法和事件的添加,无异于新创建了一门语言。

我一直在思考加速ExtJS开发速度的方法,经过一些实践,我意识到ExtJS开发的难度不在于组件的使用,而在于架构的搭建,于是,我编写了这样一个加速后台开发的框架——ExtDash。

框架的产生简化了难度,却必然失去一定的灵活性,但我想,ExtDash已经足以满足大部分的定制化需求。

git地址:https://git.oschina.net/jiusem/ExtDash.git

快速上手

首先,你需要引入ExtJS5的类库文件:

<link type="text/css" rel="stylesheet" href="extjs5/resources/ext-all.css" />
<script src="extjs5/ext-all.js" ></script>

然后引入ExtDash的相关文件:

<link type="text/css" rel="stylesheet" href="extdash/extdash.css" />
<script src="extdash/extdash.js" ></script>

最简单的例子,没有任何参数:

<script>
ExtDash.init();
</script>

打开浏览器,你已经可以看到下面的效果,一个后台的框架已经搭建成功:

左侧是菜单项,右侧是主面板,点击菜单项,主面板都会打开一个标签页。很多的后台都是采用这种开发模式。

下面我们通过配置项来自定义界面,ExtDash不提供其他接口和事件,仅通过配置项来实现。

创建简单的菜单:

ExtDash.init({
    menus:[
        {
            text:‘测试‘,
            leaf:true //没有子菜单了
        },
        {
            text:‘测试2‘,
            leaf:true
        }
    ]
});

演示:

点击菜单项会提示没有设置xtype属性,因为我们刚刚没有配置。

可以这样配置:

ExtDash.init({
    menus:[
        {
            text:‘用户列表‘,
            xtype:‘UserList‘, //点击时打开xtype为UserList的组件
            leaf:true
        }
    ]
});

点击菜单项,会自动打开UserList组件,但前提是需要引入该组件,且组件的xtype已经配置为UserList。

引入组件的方式:

ExtDash.init({
    views:[
        ‘MyApp.view.user.UserList‘
    ]
});

这样,就会引入UserList.js文件,按照MVC的开发方式,该文件应该放在目录app->view->user->UserList.js下,这样才会被ExtJS自动加载。如果你熟悉ExtJS的MVC开发模式,这一点应该很容易理解。

UserList.js的代码示例:

Ext.define(‘MyApp.view.user.UserList‘,{
    extend:‘Ext.panel.Panel‘,
    xtype:‘UserList‘, //非常重要,和菜单项的xtype对应,否则无法正确找到组件
    html:‘你好,世界‘
});

好了,一个简单的例子就完成了,点击菜单项,我们将看到右侧的面板打开一个新标签页,加载了UserList组件:

到这里,我们就了解了ExtDash核心了,是不是很简单?

进阶使用

创建树形菜单:

ExtDash.init({
    menus:[
        {
            text:‘用户管理‘,
            expanded:true, //展开子节点
            children:[
                {
                    text:‘用户列表‘,
                    xtype:‘UserList‘,
                    leaf:true
                }
            ]
        },
        {
            text:‘系统管理‘,
            xtype:‘Setup‘,
            leaf:true
        }
    ]
});

演示:

引入控制器、模型、数据池:

ExtDash.init({
    controllers:[
        ‘AppController‘,
        ‘UserController‘
    ],
    models:[
        ‘AppModel‘,
        ‘UserModel‘
    ],
    stores:[
        ‘AppStore‘,
        ‘UserStore‘
    ]
});

目录结构:

这些文件都按照MVC的模式存放在目录app->controller , app->model , app->store 下面,命名空间默认使用MyApp。当然,这些是可以配置的:

ExtDash.init({
    appFolder:‘Test‘,//MVC文件目录,默认是app
    appName:‘ET‘//命名空间,默认是MyApp
});

注意,修改appFolder后,文件存放路径需要改变,修改appName后,所有文件的命名空间要改变,例如,UserList.js需要变为:

Ext.define(‘ET.view.user.UserList‘,{
    ....
})

存放路径变为Test->view->user->UserList.js

配置logo:

//文字形式
ExtDash.init({
    logo:{
        xtype:‘tbtext‘,
        text:‘欢迎使用后台管理‘
    }
});

//图片形式
ExtDash.init({
    logo:{
        xtype:‘image‘,
        src:‘...‘,
        height:32, //建议高度
        width:60,
    }
});

文字形式

图片形式

配置中心面板默认内容:

ExtDash.init({
    centerRegion:{
        title:‘自定义主面板‘,
        xtype:‘panel‘,
        html:‘你好,世界‘
    }
});

演示:

配置右上角账户信息:

ExtDash.init({
    userInfo:‘欢迎你,管理员‘
});

演示:

配置右上角按钮:

ExtDash.init({
    controls:[
        {
            xtype:‘button‘,
            text:‘注销账号‘,
            scale:‘medium‘,//定义按钮大小,建议为中等
            handler:function(){
                ///
            }
        }
    ]
});

演示:

配置底部版权信息:

ExtDash.init({
    copyright:‘2015 版权所有 ‘
});

演示:

配置左侧菜单栏标题:

ExtDash.init({
    menuTitle:‘导航‘
});

演示:

ExtDash的使用方法基本上就是这些了,由于能力有限,必然还有很多不完善的地方。如果你对ExtDash有任何建议或意见,欢迎不吝赐教。如果你对ExtDash有兴趣,欢迎将它使用在你的项目中,那就是我最开心的事了。联系QQ:291445576 < 注明来自开源中国:) >

时间: 2024-08-30 10:54:01

ExtDash——基于ExtJS 5的MVC后台开发框架的相关文章

基于ExtJS 4.2.1 + Hibernate 4.1.7 + Spring MVC 3.2.8 的通用后台管理系统

一.系统介绍 1.基于最新的ExtJS 4.2.1.883开发. 2.支持MySQL.SQL Server.Oracle.DB2等关系数据库. 3.本系统可作为OA.网站.电子政务.ERP.CRM等基于B/S架构的应用软件系统的快速开发框架. 源码有50多M(包括Jar包和SQL文件),点此获取. 二.特色功能1.采用Spring MVC的静态加载缓存功能,在首页将Javascript文件.CSS文件和图片等静态资源文件加载进来放进内存,极大提高ExtJS的加载速度.2.增加新的ExtJS Ne

Quartz.Net 作业调度后台管理系统,基于Extjs

Quartz.Net是一个开源的.非常灵活的作业调度框架,具体使用方法和教程:http://www.cnblogs.com/shanyou/archive/2007/08/25/quartznettutorial.html 虽然很优秀,但使用过程中没有找到一个合适的后台任务配置系统,有时是CronExpress的生成,看过:http://www.cronmaker.com/ 等但都不是特别合适,最好是能参考MSSQL里的作业调度来设计. Extjs是最牛逼的RichClient前端开发框架,下面

基于DDD的现代ASP.NET开发框架--ABP系列之3、ABP分层架构

点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之3.ABP分层架构 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 前言 为了减少复杂性和提高代码的可重用性,采用分层架构是一种被广泛接受的技术.为了实现分层的体系结

MVC 快速开发框架

ASP.NET MVC 快速开发框架之 SqlSugar+SyntacticSugar+JQWidgetsSugar+jqwidgets jqwidgets.js: 是一个功能完整的框架,它具有专业的可触摸的jQuery插件.主题.输入验证.拖放插件.数据适配器,内置WAI-ARIA(无障碍网页应用)可访问性.国际化和MVVM模式支持.jQWidgets 为搭建专业网站和开发移动应用程序提供了一个全面的解决方案.它完全基于开放的标准和技术,如 HTML5.CSS.Javascript和jQuer

Spring7:基于注解的Spring MVC(下篇)

Model 上一篇文章<Spring6:基于注解的Spring MVC(上篇)>,讲了Spring MVC环境搭建.@RequestMapping以及参数绑定,这是Spring MVC中最基础也是最重要的内容,本篇文章继续讲讲Spring MVC中其余的知识点,先从Model开始. 前一篇文章比较详细地解读了数据从页面请求到服务器后台的一些细节,那么下一个要解决的问题就是数据如何从后台再次传回前台,答案就是这里要说的Model,关于Model在写例子之前我特别先说明三点: 1.Model本身是

基于DDD的现代ASP.NET开发框架--ABP系列之8、ABP日志管理

点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之8.ABP日志管理 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 本文由东莞-天道提供翻译 Server side(服务器端) ASP.NET Boilerplat

基于DDD的现代ASP.NET开发框架--ABP系列之6、ABP依赖注入

点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之6.ABP依赖注入 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://github.com/aspnetboilerplate 本文由 上海-半冷 提供翻译 什么是依赖注入 如果你已经知道依赖注入的概念,构造函数和属性注入模式

基于DDD的现代ASP.NET开发框架--ABP系列之2、ABP入门教程

点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之2.ABP入门教程 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)”的简称. ASP.NET Boilerplate是一个用最佳实践和流行技术开发现代WEB应用程序的新起点,它旨在成为一个通用的WEB应用程序框架和项目模板. ABP的官方网站:http://www.aspnetboilerplate.com ABP在Github上的开源项目:https://gith

RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录

RDIFramework.NET - 基于.NET的快速信息化系统开发框架 - 系列目录 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.  框架简单介绍 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,为企业或个人在.NET环境下快速开发系统提供了强大的支持,开发人员不需要开发系统的基础功能和公共模块,框架自身提供了强大的函数库和开发包,开发人员只须集中精力专注于业务部分的开发,因此大大提高开