位置: 编程技术 - 正文

浅谈JavaScript 框架分类(js框选)

编辑:rootadmin

推荐整理分享浅谈JavaScript 框架分类(js框选),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js 编辑框,javascript基本框架,javascript框架,js框选,javascript基本框架,js框选,js 编辑框,javascript基本框架,内容如对您有帮助,希望把文章链接给更多的朋友!

如果是从内部架构与理念划分,目前JavaScript框架可以划分为5类。

第1种

出现的是以命名空间为导向的类库或框架,如创建一个数组用new Array(),生成一个对象用new Object(),完全的Java风格,因此我们就可以以某一对象为根,不断为它添加对象属性或二级对象属性来组织代码,金字塔般地垒叠起来。代表作如早期的YUI与EXT。

第2种

出现的是以类工厂为导向的框架,如著名的Prototype,还有mootools、Base2、Ten。它们基本上除了最基本的命名空间,其他模块都是一个由类工厂衍生出来的类对象。尤其是mootools 1.3,把所有类型都封装成Type类型。

第3种

就是以jQuery为代表的以选择器为导向的框架,整个框架或库主体是一个特殊类数组对象,方便集化操作——因为选择器通常是一下子选择到N个元素节点,于是便一并处理了。jQuery包含了几样了不起的东西:“无new实例化”技术,$(expr)就是返回一个实例,不需要显式地new出来;get first set all访问规则:数据缓存系统。这样就可以复制节点的事件了。此外,IIFE(Immediately-Invoked Function Expression)也被发掘出来。

第4种

就是以加载器串联起来的框架,它们都有复数个JavaScript文件,每个JavaScript文件都以固定规则编写。其中最著名的莫过于AMD。模块化是JavaScript走向工业化的标志。《Unix编程艺术》列举的众多“金科玉律”的第一条就是模块,里面有言——“要编写复杂软件又不至于一败涂地的唯一方法,就是用定义清晰的接口把若干简单模块组合起来,如此一来,多数问题只会出现在局部,那么还有希望对局部进行改进或优化,而又不至于牵动全身”。许多企业内部框架都基本采取这种架构,如Dojo、YUI、kissy、qwrap和mass等。

第5种

就是具有明确分层架构的MV*框架。首先是JavaScript MVC(现在叫CanJS)、backbonejs、spinejs,然后更符合前端实际的MVVM框架,如knockout、ember、angular、avalon、winjs。在MVVM框架中,原有DOM操作被声明式绑定取代了,由框架自行处理,用户只需专注于业务代码。

下面是有关框架特征的结论。

浅谈JavaScript 框架分类(js框选)

对基本数据类型的操作是基础,如jQuery就提供了trim、camelCase、each、map等方法,对Prototype.js等侵入式框架则是在原型上添加camelize等方法。

类型的判定必不可少,常见形式是isXXX系列。

选择器、domReady、Ajax是现代框架的标配。

DOM操作是重中之重,节点的遍历、样式的操作、属性操作也属于它的范畴,是否细分就看框架的规模了。

brower sniff已过时,feature detect正被应用。不过特性侦测还是有局限性,如果针对于某个浏览器版本的渲染Bug、安全策略或某些Bug的修正,还是要用到浏览器嗅探。但它应该独立成一个模块或插件,移除框架的核心。

现在主流的事件系统都支持事件代理。

数据的缓存与处理,目前浏览器也提供data-*属性进行这方面的工作,但不太好用,需要框架的进一步封装。

动画引擎,除非你的框架像Prototype.js那样拥有像script.aculo.us这样顶级的动画框架做后盾,最好也加上。

插件的易开发和扩展性。

提供诸如Deferred这样处理异步的解决方案。

即使不专门提供一个类工厂,也应该存在一个名为extend或mixin的方法对对象进行扩展。jQuery虽然没有类工厂,但在jQuery UI中也不得不增加一个,可见其重要性。

自从jQuery出来一个名为noConflict的方法,新兴的框架都带此方法,以求狭缝中生存。

许多框架非常重视Cookie操作。

javascript 回调函数详解 回调函数定义回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向

推荐JavaScript实现继承的最佳方式 实现JavaScript继承的最简单的方式是call方法(或者apply方法)及原型链方法,但这两种方法都有缺陷,而其混合体就是很好的继承实现方式。下面举例说

js在IE与firefox的差异集锦 1.firefox不能对innerText支持。firefox支持innerHTML但却不支持innerText,它支持textContent来实现innerText,不过默认把多余的空格也保留了。如果不用textContent,如

标签: js框选

本文链接地址:https://www.jiuchutong.com/biancheng/384787.html 转载请保留说明!

上一篇:js闭包的用途详解(js闭包作用问题解决应用)

下一篇:javascript 回调函数详解(js 回调函数写法)

  • 增值税发票确认平台怎么认证发票
  • 教培行业提成一般多少
  • 企业自产的产品转为自用
  • 增值税专用发票抵扣期限
  • 母公司与子公司的区别
  • 累计净值包含业务收入吗
  • 进料加工出口退税政策
  • 一般纳税人附加税减免政策2023
  • 员工报销医疗费怎么做账
  • 非货币性资产交换固定资产清理
  • 不含税销售收入含消费税吗
  • 如何做现金支票凭证
  • 股权转让交的税如何做账
  • 坏账已核销
  • 被强制执行的款怎么记账
  • 预付账款只有部分开了发票怎么入账
  • 计生用品增值税减免税申报明细表怎么填
  • 没有签订劳动合同员工离职怎么处理
  • 不是房屋产权人可以卖房吗
  • 把十六点改成十五点半起床
  • 未按规定期限办理身份证
  • 成本费用票少了怎么办
  • 增值税普通发票和专用发票有什么区别
  • 收入低于10万免征附加税
  • 企业债券投资利息怎么算
  • 企业捐赠如何入账
  • linux minor
  • 收入记借方
  • unity默认存储路径
  • 付不出去的应付账款要交增值税吗
  • 小规模纳税人没有进项发票怎么办
  • vite config
  • 向农户收购农产品怎么打款
  • 前端项目部署到nginx
  • 将自产的应税消费品用于连续生产应税消费品
  • 基于springboot的oa
  • vue3.0中的ref
  • 帝国cms移动端设置教程
  • 普通发票不满8项怎么开明细
  • 在vue项目如何引入异步组件?
  • php的框架
  • mongodb局域网访问
  • 进项税额是什么意思
  • 简单的记账方法叫什么
  • 债券投资的会计科目有哪些
  • 经营性应付项目的增加为什么调减
  • 企业进项税和销项税怎么抵扣
  • mysql主从复制实现原理
  • 房地产企业的会计科目设置
  • 一般贸易出口报关的详细流程案例
  • 红冲发票怎么写分录
  • 资本公积转增股本所有者权益会变吗
  • 出口免税项目
  • 客房服务费可以开发票吗
  • 固定资产清理包括什么会计科目
  • mysql判断字符长度
  • fedora linux安装教程
  • win7 64位系统无法使用银行网银怎么办? IE9浏览器无法使用农业银行网银的解决方法
  • win7诊断策略服务未运行是电脑问题还是网络
  • zmweb.exe是什么进程
  • win7 64位系统提示"Windows7不能识别网络打印机"的故障原因及解决方法
  • linux系统变卡慢了
  • win8开机进不了桌面
  • win7系统如何修改锁屏密码
  • c#在unity的作用
  • js给表格添加一行
  • 电脑windows自动关闭
  • css命名大全
  • jquery内容
  • 用jquery实现全选
  • 占位符设置
  • JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
  • 音频资料下载
  • 河南车船税缴纳查询网
  • 电子税务局怎么添加银行账户信息
  • 中华人民共和国成立于1949年10月1日到今年是多少周年
  • 车辆购置税已缴款未入库可以上牌吗
  • 企业如何网上申报税
  • 北京身份证网上换证流程
  • 租赁合同备案后可以更改吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设