query插件就是一些人用jquery寫的一些工具,我們在調(diào)用時只需要用很少的代碼就能實現(xiàn)很好的效果,編寫jquery插件的目的主要是給已經(jīng)有的一系列方法或函數(shù)做一個封裝,以便在其他地方重復使用,方便后期維護和提高開發(fā)效率。
讓我們來看一下,一些常用的jQuery插件:
jQuery表單驗證插件:Validation
最常使用JavScript的場合就是表單的驗證,而jQuery作為一個優(yōu)秀的JavaScript庫,也提供了一個優(yōu)秀的表單驗證插件——Validation.Validation是歷史最悠久的jQuery插件之一,經(jīng)過了全球范圍內(nèi)不同項目的驗證,并得到了許多Web開發(fā)者的好評。作為一個標準的驗證方法庫,
Validation擁有如下優(yōu)點:
內(nèi)置驗證規(guī)則:擁有必填、數(shù)字、E-Mail、URL和信用卡號碼等19類內(nèi)置驗證規(guī)則
自定義驗證規(guī)則:可以很方便地自定義驗證規(guī)則
簡單強大的驗證信息提示:默認了驗證信息提示,并提供自定義覆蓋默認提示信息的功能
實時驗證:可以通過keyup或blur事件觸發(fā)驗證,而不僅僅在表單提交的時候驗證。
jQuery表單插件:Form
jQuery Form插件是一個優(yōu)秀的Ajax表單插件,可以非常容易地、無侵入地升級HTML表單以支持Ajax。jQuery有兩個核心方法——ajaxForm()和ajaxSubmit(),它們集合了從控制表單元素到?jīng)Q定如何管理提交進程的功能。另外iain,
插件還包括其他的一些方法:
formToArray()、formSerialize()、fieldSerialize()、fieldValue()、clearForm()和resetForm()等
jQuery UI插件
jQuery UI源自于一個jQuery插件——Interface。Interface插件最早版本我1.2,只支持jQuery1.1.2的版本,后來有人對Interface的大部分代表基于jQuery1.2的API進行重構(gòu),并統(tǒng)一了API。由于改進重大,因此版本號不是1.3而是直接跳到1.5,并且改名為jQuery UI。
jQuery UI主要分為3個部分,交互、微件和效果庫
交互。這里都是一些 與鼠標 交互相關(guān)的內(nèi)容。包括拖動,置放,縮放,選擇 和排序 等待。微件(Widget)中有部分是基于這些交互組建來制作的。此庫需要 一個jQuery UI 核心庫——ui.core.js支持
微件。這里主要是一些界面的擴展。里邊包括 了手風琴導航,自動完成,取色器,對話框,滑塊,標簽 ,日歷,放大鏡,進度條和微調(diào)控制器等待。此庫需要 一個jQuery UI 核心庫——ui.core.js支持
效果庫。此庫用于提供豐富的動畫效果,讓動畫不再局限于animate()方法。效果庫有自己的一套核心即effects.core.js,無需jQuery的核心庫ui.core.js支持
動態(tài)綁定事件插件:livequery
Query的事件綁定功能使得jQuery代碼與HTML代碼能夠完全分離,這樣代碼的層次關(guān)系更加清晰,維護起來也更加簡單。然而對于動態(tài)加載到頁面的HTML元素,每次都需要重新綁定事件到這些元素上,十分不便。
一款新的插件由此產(chǎn)生,即livequery,可以利用它給相應的DOM元素注冊時間或者觸發(fā)回調(diào)函數(shù)函數(shù)。不僅當前選擇器匹配的元素會被綁定事件,而且后來通過JavaScript添加的元素都會被綁定事件。當元素不再和選擇器匹配時,livequery會自動取消事件注冊,使得開發(fā)者不再需要關(guān)注HTML元素的來源,只需要關(guān)注如何編寫其綁定的事件即可。
通過jQuery選擇器選擇一個DOM元素,livequery插件會實時地在整個DOM范圍將其持久化。這意味著無論元素是先前存在的還是后來動態(tài)加載的,事件都會被綁定,就像是CSS給元素添加樣式一樣。同時,這款插件幾乎在沒占用什么資源的情況下就做到了這些功能。
以上就是什么是jQuery插件的詳細內(nèi)容,更多請關(guān)注其它相關(guān)文章!
更多技巧請《轉(zhuǎn)發(fā) + 關(guān)注》哦!
abel插件、webpack插件、vue-cli插件,為啥這么多的優(yōu)秀框架都是使用插件系統(tǒng)?插件化架構(gòu)是什么?帶來了什么好處?可以應用到什么場景呢?
插件化架構(gòu)又稱微核架構(gòu),指的是軟件的內(nèi)核相對較小,主要功能和業(yè)務邏輯都通過插件實現(xiàn)。插件化架構(gòu)一般有兩個核心的概念:內(nèi)核和插件。
內(nèi)核一般會將要完成的所有業(yè)務進行抽象,抽象出最小粒度的基礎接口,供插件方來調(diào)用。這樣,插件開發(fā)的效率將會極大地提高。比方說,瀏覽器就是一個典型的插件化架構(gòu),瀏覽器是內(nèi)核,頁面是插件,這樣通過不同的URL地址加載不同的頁面,來提供非常豐富的功能。而且,我們開發(fā)網(wǎng)頁時候,瀏覽器會提供很多API和能力,這些接口通過 window來掛載, 比如,DOM、BOM、Event、Location等等。
設計一個完善的插件化架構(gòu)的系統(tǒng),包含三要素:
我們將從plugCore、 pluginAPI和plugin三要素,來解析jQuery、Babel和Vue CLI這三大優(yōu)秀的開源庫其插件化架構(gòu)的實踐。
jQuery 是一個 JavaScript 庫,極大地簡化了JavaScript 編程,用更少的代碼完成更多工作。早期瀏覽器的標準不統(tǒng)一,開發(fā)網(wǎng)頁需要兼容不同瀏覽器的用戶使用是一件十分痛苦的事情。jQuery在適配了不同瀏覽器的差異的基礎上提供了更加完善易用API,供前端開發(fā)人員完成網(wǎng)頁編程,使用jQuery編寫的網(wǎng)頁,在一套代碼下也可以在不同廠商的瀏覽器上正常運行。在 MV* 框架流行之前,jQuery是絕對的扛霸子。jQuery是可擴展的,其擁有完善的插件體系,網(wǎng)頁開發(fā)所需要的各種插件在其生態(tài)都可以找到。我們解析一下jQuery插件體系。
特別說明:$.fn=jQuery.protype(插件精髓)。jQuery的插件機制通過原型鏈來掛載。
$app便可以在原型鏈上查找到myPlugin:
Babel 是一個工具鏈,主要用于將 ECMAScript 2015+ 版本的代碼轉(zhuǎn)換為向后兼容的 JavaScript 語法,以便能夠運行在當前和舊版本的瀏覽器或其他環(huán)境中。在代碼轉(zhuǎn)換的過程中會涉及許多特性和語法的轉(zhuǎn)換,而且ECMAScript的提案總是不斷地更新。如何組織大量(不斷增加)的轉(zhuǎn)換規(guī)則呢?我們來看看 Babel的工作原理。
Babel轉(zhuǎn)換源碼,分為三個步驟:
Babel在AST轉(zhuǎn)換的過程(即上圖的第2步),便使用插件化架構(gòu),下面將會詳細講解這個轉(zhuǎn)換過程的插件化架構(gòu)的使用。
插件是一個函數(shù),返回值是一個包含visitor的對象。插件定義的部分概念說明:
(筆者認為pluginAPI還應包括nodePath,因為,每個節(jié)點實例除了語法和詞法描述,還包含需求語法間的轉(zhuǎn)換方法)
箭頭函數(shù)轉(zhuǎn)換成普通函數(shù)的插件:@babel/plugin-transform-arrow-functions [3]源碼:
插件的執(zhí)行思路:
單個插件的執(zhí)行思路很明確了,那么在ATS遍歷過程,怎么做到多個插件一起工作呢?
Babel在轉(zhuǎn)換源碼過程中,插件化架構(gòu)的工作流程是這樣的:
合并后的visitor對象:
visitor的對象中的值變成了 Array<function(nodePath)>
Vue CLI 是一個基于 Vue.js 進行快速開發(fā)的完整系統(tǒng)。CLI插件是向你的 Vue 項目提供可選功能的 npm 包,例如 Babel/TypeScript 轉(zhuǎn)譯、ESLint 集成、單元測試和 end-to-end 測試等。Vue CLI 插件的名字以 @vue/cli-plugin- (內(nèi)建插件) 或 vue-cli-plugin- (社區(qū)插件) 開頭,非常容易使用。下面,我們將會解析cli插件的定義、執(zhí)行、安裝等過程。
插件必須是vue-cli-plugin-命名的npm包,并且目錄結(jié)構(gòu)也是要嚴格遵循文件命名來定義。
注意:@vue/cli-service [6],會通過 項目根目錄下package.json中dependencies和devDependencies中定義的 npm包中符合插件命名規(guī)范的 npm包作為項目的插件。
文件命名和內(nèi)容說明:
詳情可以去看Vue Cli 插件開發(fā)指南 [9]
我們把Vue CLI的插件執(zhí)行分成兩種情況:
相比Babel的手動安裝添加插件方式,Vue CLI的插件系統(tǒng)提供命令行的安裝方式就顯得很方便了。我們看看Vue Cli插件系統(tǒng)時怎么實現(xiàn)一行命令添加插件的功能。
安裝流程的執(zhí)行思路如下:
插件運行流程是由@vue/cli-service [14]這個插件系統(tǒng)定義的,這里的調(diào)用插件有兩種:
插件運行邏輯很簡單:
這兩個流程的 pluginAPI是不一樣的。
1)安裝流程
2)運行流程
一個插件系統(tǒng)是可以不多個插件類型,并且插件系統(tǒng)通過命令安裝插件的實現(xiàn),用戶在使用插件系統(tǒng)時添加插件也是十分方便的。
通過上述的實例,總結(jié)處理插件架構(gòu)的應用場景。
通過建立一個插件標準,將研發(fā)流程沉淀的能力進行插件化編程,整個公司通過使用一套的插件系統(tǒng)(中臺),這樣意味著,我們不用重復造業(yè)務輪子,團隊和企業(yè)可以持續(xù)積累自己的插件生態(tài),讓軟件開可以像汽車等工業(yè)制造一樣,打造一條標準化裝配的流水線。
者:lzg9527
轉(zhuǎn)發(fā)鏈接:https://segmentfault.com/a/1190000022956602
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。