如何開發(fā)原生的 JavaScript 插件(知識點+寫法)
一、前言
通過 "WWW" 原則我們來了解 JavaScript 插件這個東西
第一個 W "What" -- 是什么?什么是插件,我就不照搬書本上的抽象概念了,我個人簡單理解就是,能方便實現(xiàn)某個功能的擴展工具.(下面我會通過簡單的例子來幫助讀者理解)
第二個 W "Why" -- 為什么? 為什么要有插件這種東西,首先結(jié)合第一個 W 來理解就是,使用插件的目的是方便我們實現(xiàn)某一個功能. 也就是說在編程過程中我們只需要找輪子,或者改輪子而不需要重新造輪子.節(jié)省開發(fā)時間,并且各司其職會更加專業(yè)(做得更好)。其次就是方便維護(hù),因為每個功能模塊可以分得更清楚,所謂的松耦合。
第三個 W "How" -- 如何做?我們?nèi)绾伍_發(fā) JavaScript 插件?這是我們這片文章要談?wù)摰闹攸c.
二、準(zhǔn)備知識
在討論如何做之前我們不妨先通過反向思維來看看插件的特點。我們從如何使用 Javascript 插件開始。
假設(shè)我們現(xiàn)在要使用插件 js-plugin.js
第一步:引入插件,注意依賴項,例如有些插件是基于 jquery 編寫的,先引入 jquery
第二步:通過插件提供的 API 實現(xiàn)我們所要的業(yè)務(wù)
以經(jīng)典的 jquery 使用方法為例
<script src="http://cdn.bootcss.com/jquery/3.1.0/jquery.min.js"></script> <script> $(function(){ $("#Id").html('hello world!'); }) </script>
順便說一句,能使用CDN的盡量使用CDN,這將使你的資源加載得更快.并節(jié)省你主機的帶寬開銷 傳送門: BootCDN
上述兩點其實也就是說我們的插件要做到,引入相關(guān)文件就可以方便地進(jìn)行使用。換句話說插件必須滿足下面的特點:
首先,我覺得插件最重要的一點 -- 復(fù)用性。就是說你這個插件在這個項目中是能用的,搬到另一個項目中它也是能用的(廢話),并且原則上依賴項越少越好
其次,我覺得這是插件的宗旨 -- 易用性。開發(fā)一個插件,如果使用繁瑣,倒不如重新造輪子,那就失去了插件的意義。
除此之外,當(dāng)然還有高效性,考慮執(zhí)行的效率還有內(nèi)存的優(yōu)化。
三、Module 模式
插件開發(fā)不得不提的是 Modlule 模式,Module -- 模塊,模塊化開發(fā),是在編程中十分通用的模式。說白了就是把業(yè)務(wù)需求分模塊。每一個模塊負(fù)責(zé)一個功能的實現(xiàn)。有點像其他面向?qū)ο缶幊陶Z言中的類。例如 JsonHelper 專門負(fù)責(zé) json 解析,F(xiàn)ilesUpload,專門用來做文件上傳的,等等這些。
插件就是用這樣一種模塊化思想來進(jìn)行開發(fā)的,下面我們通過代碼來簡單解釋下 Module 模式。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26