360UI 界面框架 即QUI框架与EXT比较
EXTJS框架是非常全面和成熟的,这是因为它发展的年头久远,并且有全世界的EXTJS爱好者为其出谋献策,它的组件库尤其是DataGrid组件无人能出其右。我在最初也考虑过使用EXTJS来做项目,学习了一段时间后最终还是选择放弃。放弃的理由有如下几点:
(1)风格样式单一
这是最让我受不了的。一个让用户满意的系统并不是单纯组件的堆砌,用户对系统的评价除了能够完成相应的功能外,还涉及到界面是否美观、导航是否合理等等。尤其是界面美观方面,在这个用户体验全面来临的时代,一个赏心悦目的系统尤为重要。而是用EXTJS构建的系统界面都是千篇一律的,无论是蓝色风格、灰色风格还是其他的第三方风格,看起来都是那么的单调。例如下图:
(2)EXTJS定位为底层JS框架,提供的都是基础的组件,并没有提供网页常用的布局模板,所有的页面都需要通过JS脚本动态生成布局与组件,这导致系统开发效率很低,尤其是对于新手。我曾经使用EXT制作一个普通的表单页面,结果花费了我近一个小时的时间(也有可能是我水平不够,呵呵)。不过据说3.0版本提供了可视化工具好了很多。
(3)EXTJS数据传输机制主要采用了AJAX+JSON模式,从长远角度看,这种做法是合理的。但不幸的是,我所在的开发团队还是习惯于传统的同步通信方式。因为历经多年的项目积累,我们早已有了一套成熟的SSH框架,我们所有项目的后台程序都是用这套东西。如果采用EXTJS,那么意味着需要生成JSON数据以AJAX方式传递,无疑会增加大量的工作量。
(4)组件很难分离。如果我想在项目中使用一两个EXT的组件,例如window或者combox组件,那么我也需要将整套EXT框架机制全部引入,感觉太大材小用了,而且会影响整体性能。
另外我也尝试过其他的JS框架,发现它们的思路都与EXTJS相似,也同样无法满足我的需要。于是我决心自己开发一套网页框架,由此创建了QUI框架。要说明的有以下几点:
(1)首先我将其定位为集成框架,它并不是一个单纯的JS库,而是一套完整的企业级应用解决方案。包含了十多种导航结构的主页,能够满足绝大部分项目的整体布局需要。内容页面也提供了很多类型的模板,例如表单模板、数据列表模板等等。这样做的目的是为了大幅度地提高系统开发效率,不需要自己去创建,直接拿过来做简单的修改就可以用了。
(2)QUI框架最大的亮点不在于它拥有众多实用的组件和特效,而在于它拥有独特的皮肤机制,可以很方便地为其定制皮肤。我事先已经为每种结构都做了8-10套皮肤,以后新皮肤还会不断增加的。效果如下:
登录页面皮肤效果:
(3)QUI框架另一个让我得意的特点是使用的方式非常简单。在整个框架的开发过程中我就始终在思考如何简化使用步骤。它与EXTJS动态创建HTML元素的机制完全不同,是对现有的HTML进行渲染。例如如果想要创建一个提示信息,只要在元素上写title=”xxx”就可以了,效果如下:
而如果想要创建一个表单,与传统写HTML标签的方式没有任何区别,框架自动会把表单元素渲染成漂亮的、功能强大的页面。想要增加功能只要在标签上添加属性就可以了,例如为文本框标签增加一个watermark=”xxx”的属性,那么文本框就具有了水印效果,如下:
一个被渲染后的表单整体效果如下:
当然,很多人已经习惯了EXTJS的开发方式,反而会觉得EXT的开发方式效率更高一些,我也没意见,所谓萝卜青菜各有所爱。
(4)QUI框架只是对前台元素进行渲染,不会改变原有的后台机制。另外还提供了分离版本,这样如果只想使用里面的一两种组件或特效也不必将整套框架机制全部引入。前面提到的那两个问题也解决了。
项目网址:www.360ui.net
360UI 界面框架 即QUI框架与EXT比较的更多相关文章
- 挑战EXT——QUI框架介绍与下载
挑战EXT——QUI框架介绍与下载 为庆祝新版QUI问世特写此文: 提起EXTJS的大名,恐怕WEB开发界无人不晓吧.EXTJS框架发展到现在,已经非常成熟和全面了.它的组件库尤其是DataGrid组 ...
- jQuery Mobile与QUI框架的异曲同工之处
最近一直在研究jQuery Mobile框架,这是jQuery的官方移动版UI框架,专门用来开发手机与平板电脑方面的应用.结果越来越觉得它和我的QUI框架的开发思路非常相似,很多地方都有异曲同工之妙. ...
- 仿知乎app登录界面(Material Design设计框架拿来就用的TexnInputLayout)
在我脑子里还没有Material Design这种概念,就我个人而言,PC端应用扁平化设计必须成为首选,手当其冲的两款即时通讯旺旺和QQ早就完成UI扁平化的更新,然而客户端扁平化的设计本身就存在天生的 ...
- Android酷炫实用的开源框架(UI框架)
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
- 二十一、【.Net开源框架】EFW框架Web前端开发之目录结构和使用FireBug调试方法
回<[开源]EFW框架系列文章索引> EFW框架源代码下载V1.2:http://pan.baidu.com/s/1hcnuA EFW框架实例源代码下载:http://pan.baidu. ...
- Android酷炫实用的开源框架(UI框架) 转
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
- 黄聪:Android酷炫实用的开源框架(UI框架)(转)
Android酷炫实用的开源框架(UI框架) 前言 忙碌的工作终于可以停息一段时间了,最近突然有一个想法,就是自己写一个app,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对大家有帮 ...
- 用Python手把手教你搭建一个web框架-flask微框架!
在之前的文章当中,小编已经教过大家怎么搭建一个Django框架,今天我们来探索另外的一种框架的搭建,这个框架就是web框架-flask微框架啦!首先我们带着以下的几个问题来阅读本文: 1.flask是 ...
- wsgiref模块、web框架、django框架简介
"""web框架:将前端.数据库整合到一起的基于互联网传输的python代码 web框架也可以简单的理解为是软件开发架构里面的'服务端'""" ...
随机推荐
- linphone 在am335x的编译过程
环境变量: export PREFIX=/usr export HOSTTPL=arm-linux-gnueabihf export INSTALLDIR=/home/elinux/linphone/ ...
- C++ 匿名对象的生命周期
//匿名对象的生命周期 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; class Poin ...
- Excel随机生成数据2
200万耗时大约 10秒以内,输出结果到txt文件. Sub GetPassword() 'by kagawa Dim i&, j&, k&, l&, m&, ...
- VC++分页打印实现
VC++分页打印实现: C++ Code 12345678910111213141516171819202122232425262728293031323334353637383940414243 ...
- Ubuntu 16.04 LTS 安装libvips出现”Package vips was not found in the pkg-config search path”
使用libvips来操作图像,libvips的部署参考一个Node.js工程:https://github.com/lovell/sharp 在MAC下安装很顺利,到Linux环境下(Ubuntu 1 ...
- WebGL中图片多级处理(FrameBuffer)
在webgl的使用过程中,我们通常会想对texture进行多级处理并对其贴在表面显示 如对较精准的边缘检测,要先后使用灰度shader.模糊shader.边缘shader来进行处理,而每次的处理对象则 ...
- typescript 实现函数重载
class Demo { // #region 声明 log() : void; log(arg1: string): void; log(arg1: number, arg2: string): v ...
- iOS开发之--去除按钮的点击效果
Button.adjustsImageWhenHighlighted = NO; 去除按钮的点击效果,用这句代码就可以了!
- iOS开发经验总结(一)
本文转载至 :http://dreamahui.iteye.com/blog/1878650 软件开发方面 1. 在每个页面的入口和出口(一般是viewDidLoad和dealloc)打上日志,可以 ...
- gridView在view页面中的一些代码详细模板
<?php use yii\helpers\Html; use yii\grid\GridView; use yii\widgets\Pjax; use frontend\models\Item ...