位置: 编程技术 - 正文

javascript插件开发的一些感想和心得(js插件大全)

编辑:rootadmin

推荐整理分享javascript插件开发的一些感想和心得(js插件大全),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:javascript插件浏览器,javascript插件开发,js插件怎么写,js插件怎么写,js插件使用教程,js插件使用教程,javascript插件开发,js插件使用教程,内容如对您有帮助,希望把文章链接给更多的朋友!

起因

如果大家平时做过一些前端开发方面的工作,一定会有这样的体会:页面需要某种效果或者插件的时候,我们一般会有两种选择:1、上网查找相关的JS插件,学习其用法2、自己造轮子,开发插件。

寻找存在的插件

第一种做法,上网查找JS插件这种方式如果是有刚好符合项目需求的插件,那是非常幸运的事了。但是我相信大部分情况下,我们找到的插件会有下面的几个问题:(1)UI定制:很多插件提供的UI和我们的项目设计风格完全不搭,可能写好的html和css不符合插件使用的方式,结果我们还要去修改html和css来适应插件的用法。(2)学习成本:如果是比较复杂的插件,存在着一个学习成本的问题,要去学习这个插件怎么使用。(3)插件不符合需求:我们找到的插件并不完全保证符合我们项目的需求,这个时候你可能要去修改它的代码来支持项目需求,这也是可能存在的问题(4)插件功能太大而全:假设你的项目需要一个简单的轮播插件,结果找到一个很牛逼的轮播插件,各种酷炫的效果,而且刚好也能使用,但是这个插件的体积和一个js库的体积差不多,而如果自己写效果的话,其实只要几十行代码就可以搞定了,这时候引入这个插件是否太过多余了。这是使用js插件可能存在的一些问题,当然具体情况具体分析,我也并非不使用已经写好的js插件,毕竟有些插件是经过了时间考验的,使用起来更有益于项目的进行。如果是下面几种情况,我会考虑使用已经存在的js插件:(1)复杂的功能:比如文件上传,批量上传,进度显示等等,比如HTML编辑器(2)项目工期紧急,对性能要求不高的场景(3)js插件刚好符合项目的需求

自己造轮子

第二种做法,自己造轮子开发插件自己写插件主要有下面几个问题:(1)开发插件需要时间,可能拖延项目工期,如果工期紧急不建议选用这种方式(2)自己造的轮子未必有现有轮子的好用,要考虑到队友是否适用(3)需要比较高的开发水平如果平时项目不紧急的话,我会考虑自己造轮子,主要有几个好处:(1)完全符合项目需求,这一条是显而易见的,因为完全针对项目来开发的插件(2)知根知底,容易修改,插件完全是自己开发的,项目有什么需求变化完全可以灵活应对(3)轻量级,因为我们不像其他开源插件要应对那么多种需求,所以我们自己的轮子也只需要符合自己的车,不需要很多变化,相对来说,变化少功能少,代码也会少。(4)对个人能力是一个很大的锻炼,不要重复造轮子这是在程序员中广为流传的一句话,这也成为很多人偷懒的一个借口,但是我们不应该以此为借口来阻碍自己的前进的脚步。造过轮子的同学应该深有体会,造过一个轮子,远比你使用别人写的个插件的收获还要多,我们的轮子可以不在项目中使用,但这是一种效率极高的学习方式,强烈推荐。

如何开发一个轻量级的适用性强的插件

怎么开发一个适应性强的且轻量的插件呢?所谓适用性强,简单地说就是有几点:1、对UI限制越少越好,最好没有2、不提供太多功能,只提供简单的api,让使用者易于扩展

我们举个例子,假设我们要开发一个jQuery分页插件,关于jQuery插件开发教程,请参考jQuery插件开发。

确定需求

确定需求是开发插件的第一步。要开发一个轻量级的分页插件,我们还是用从插件最基本的需求开始说起,分页插件最基本的需求是什么呢,无非就是页码显示,页码之间的切换,所以,我们的插件要围绕着这基本需求开始,而暂时不要考虑其他可能存在的需求。

确定插件html和css

确定好插件的需求后,第二步就是插件的UI,也就是html和css。假设基本的ui如下:

javascript插件开发的一些感想和心得(js插件大全)

看到上面的基本ui,不知道大家会想到什么样的html结构。对于我们开发人员来说,html和css要越简单越好,所以最基本的html结构无非就是a标签和span标签的混合,有的同学可能会想到使用ul,li标签,但这其实增加的复杂度,得不偿失。我们编写html代码如下:

这是最基本html代码结构,包含了分页插件的容器div.pager,当前页span.curPage,其他页码a标签,上一页,下一页等按钮。接着是css代码,主要当前页标签,其他页面标签,上一页下一页,鼠标悬停在按钮上等几种样式,编写如下:

编写js代码

写好基本的html和css,接下来最关键的就是js代码了。首先我们搭建好jQuery插件开发的基本形式:

这里主要提供了一些可选参数的默认值,比如页码默认为0,每页数量6条等等。接着我们来考虑一下分页插件的思路:1、设置当前页码为0,表示第一页2、生成分页插件的html代码3、修改页码,再生成html代码基于这个思路,我们编写代码如下:

这段代码中有两个关键点要记住:(1)html代码的生成,由于页码可能太多,需要隐藏部分页码,所以我们要生成一个省略号表示被隐藏的页码,通过maxButtonCount来表示最多的页码按钮(2)事件绑定,每次页码改变都会重新生成html,我们采用事件代理的方式,提高了性能,也不用重复绑定事件这样一个最基本的分页插件已经可以了。

但是这样足够了吗?假设我们需要支持输入页码直接跳转的功能,那该如何呢,是否需要修改原有的html结构和css?前面我们说到,开发一个插件要围绕最基本的需求开始,那对于这些潜在的可能存在的需求又该如何处理呢。我的解决方案是这样的,提供简单的api,不提供UI,完全由用户自定义。我们在上面的代码增加三个api:getPageIndex,setPageIndex和setItemCount,分别表示获取当前索引,设置当前索引,设置项目总数量。代码如下:

完整版代码请查看jquery.page.js提供了这三个api,假设用户需要跳转页码的功能,可以直接使用setPageIndex方法来跳转,UI完全由用户自定义,插件本身只专注基本功能,不干涉其它。大家可以查看DEMO

整个插件的代码已经放在我的github上,有兴趣的同学可以点击查看github

总结

最后,我整理一下我开发一些js插件的思路:1、专注最基本的需求本身,暂时不考虑可能潜在的需求2、尽量不提供或少提供UI,减少对使用者的限制3、考虑可能潜在的需求,提供api,潜在的需求完全由用户自定义

这是我在编写js插件时,考虑如何轻量化并且适用性强的一些想法,欢迎大家交流!

本文地址:

javascript计时器编写过程与实现方法 JavaScript是一门非常容易上手的脚本语言,而且工具繁多,功能强大,因为一直做后端的关系,笔者目前也只是略学一点皮毛。接下来进入正题——计时

精通JavaScript的this关键字 JS中的this关键字让很多新老JS开发人员都感到困惑。这篇文章将对this关键字进行完整地阐述。读完本文以后,您的困惑将全部消除。您将学会如何在各

JS三级可折叠菜单实现方法 本文实例讲述了JS三级可折叠菜单实现方法。分享给大家供大家参考,具体如下:.ASPX代码:%@PageLanguage="C#"AutoEventWireup="true"CodeFile="NavigateMenu.aspx.cs"Inherit

标签: js插件大全

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

上一篇:详解Javascript中的Object对象(javascript definitive guide)

下一篇:javascript计时器编写过程与实现方法(js中计时器怎么写)

  • 制造企业都需要什么人才
  • 金税盘老是重复更新进不去
  • 外贸企业出口退税申报流程操作
  • 通货膨胀有什么危害?
  • 增值税专用发票抵扣期限
  • 当月的进项当月可以认证吗
  • 经营性现金流量净额是什么意思
  • 税控盘解锁是什么意思
  • 租房违约金怎么计算,怎么写
  • 行政人员出差预借差旅费需要预算会计吗
  • 一张发票开不足一台设备的金额怎么办
  • 各项费用报销附件
  • 上年度亏损用什么弥补
  • 核销确实无法收回的应收账款后会影响资产负债率
  • 公司开给个人的发票有什么用
  • 增值税减免税申报明细表怎么填写1%
  • 中标服务费会计科目
  • 回扣费可以税前扣除吗?
  • 商业承兑汇票背书转让流程图
  • 电子承兑到期收款怎么做账务
  • 销售净利率怎么求
  • 利息收入 开票
  • 没有金税盘怎么查询已开发票
  • 公司解散实收资本退还怎么写
  • 企业清算期间账务怎么做
  • 社保显示已申报,但缴不了款
  • 收到押金和支付押金的账务处理
  • linux中git命令
  • 无法删除文件提示怎么办
  • 网易打不开怎么退出游戏
  • macbookzen
  • 如何禁用bios里的secure boot
  • 原始股东减持要交多少税
  • 防暑降温费会计处理
  • 部分苹果iOS17功能延后推出
  • 分公司改为子公司的所得税业务处理?
  • 地税增值税税率是多少
  • 法罗群岛知乎
  • 在海里的章鱼
  • 边角料是否计入生产成本
  • 阿布鲁佐的特点
  • 购买税控盘后要交税吗
  • 管理费用怎么入账
  • 计提的费用收到增值税专票
  • 小规模纳税人进项发票怎么做账
  • 苗木免税只能开普票
  • 企业出售自用房产增值税
  • 股东权益是资产吗
  • 免税商品外汇业务
  • 城市基础设施配套费征收管理规定
  • 水电费没有票怎么做账
  • 个人如何购买定增的股票
  • 研发费用会影响什么
  • 普通发票作废的保存几年合理
  • 房地产一般纳税人可以不预缴增值税吗?
  • mac快速开机
  • “incorrect super block” FreeBSD挂载CDROM时报错误的解决方法
  • windows7自动开机脚本文件
  • whSurvey.exe - whSurvey进程是什么意思
  • 腾讯linux服务器
  • 虚拟内存扩大有什么好处
  • linux配置ssh
  • Skype.exe - Skype是什么进程 有什么用
  • win7系统的电脑能装win10吗
  • 安卓sdk目录下用来存放各种版本sdk的目录是
  • qt widget opengl
  • linux如何一次性删除多个文件
  • css选择器怎么写
  • Python生成随机数
  • Node.js中的事件循环是什么意思
  • linux多线程调试手段
  • tree 怎么用
  • node.js ejs
  • unity loom插件
  • python九大特点
  • 告诉你什么是无限的恐怖日语
  • 加油站怎么收税
  • 开量贩ktv一年能赚多少
  • 深圳税务开票软件发票下载
  • 重庆国家税务局发票流向查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设