jQuery以其良好的api设计在前端开发中造成了极大的影响力,他们的“write less do more”这个宗旨得到了充分的体现,但是他的UI库又是一个怎么样的体系结构呢,他们的UI库的api设计的怎么样呢?
我还是通过一段伪代码,来演示下如何来写一个jQuery UI组件:
这里我们可以看到只要调用$.widget(String name, Options prototype).,就可以生成一个jQuery UI的组件,那么这个方法帮我们做了什么工作呢?
1. 如果仅仅生成一个独立的组件,我们直接调用$.widget(String name, Options prototype),其中第一个方法就是组件的名称,第一个参数就是组件的一些共有属性和方法。
2. 如果需要用到继承,我们就用$.widget(String name, String baseName,Options prototype),这个的第二个参数就是基类的名称了。
3. $.widget向我们提供了create方法来生成dom和绑定事件,_init方法来执行一些默认的动作,_setOption来设置一个配置属性项,widget用来获取生成组件的外层dom元素,destroy用来销毁组件,option()用来获取和设置配置项,我们可以再自己写的组件中覆盖这些方法。
使用dialog控件:
Ok,现在为止我们已经会开发和使用用jQuery UI1.8开发的dialog,我们来总结下jQueryUI1.8库的一些特点:
1. 在API的使用上仍然秉承了jQuery核心库的特点,获取和设置属性使用同一个方法。
2. 在$.widget没有为控件绑定事件的接口,必须自己手工在create中进行绑定。
3. jqueryUI有着强大的自定制组件的功能,我们很方便你的自定义的自己的样式的组件,具体请看(http://jqueryui.com/themeroller/)
虽然JQueryUI1.8有很优秀的地方,但是由于它的组件都是第三方贡献的,代码的可维护性较差,也没有代码的管理结构,性能方面也比较牵强,因此组织大型的RIA应用的时候,如果您不是一个JavaScript ninja,您还是不要使用这个ui框架了,总之它的ui库还是比较年轻。但是可以使用jQuery核心库,核心库还是很风光的,欢迎大家看这边文章http://news.csdn.net/a/20100327/217617.html。