成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

如何構建一個Vue插件并生成npm包

瀏覽:6日期:2022-11-11 10:08:21

vue的插件一般用來添加全局性的功能,具體可分為:

添加全局方法或者屬性; 添加全局資源(指令、過濾器等); 通過全局 mixin 方法添加一些組件選項; 在 Vue.prototype 上 添加 Vue 實例方法; 創建一個庫,提供自己的 API,同時提供上面提到的一個或多個功能;

一般來說我們在項目中傾向于第五種方式,可以通過創建一個js文件包含我們需要添加的多種全局性功能,指令、過濾器、實例方法之類的。這樣的一個插件的構建也不難,主要就是使用vue提供的install 方法,傳入Vue構造器以及你所能用到的參數對象;添加對應的功能,export出去,在需要的地方引入并Vue.use()方法注冊即可;具體使用參考vue官網插件部分——開發插件。

這一次我的項目中需要添加‘反爬’功能,具體實現就是后端在檢測到用戶觸發‘反爬’規則后返回指定錯誤碼以及對應的驗證頁面,前端在全局請求中監測該錯誤碼,在檢測到錯誤碼后通過插件加載驗證頁面讓用戶去驗證,并將驗證結果反饋給后端,在后端收到驗證結果后移除驗證頁面。

需求確定后,我們就知道這個插件需要做的事情就是創建一個vue組件實例=>加載后端返回的頁面=>解析并執行其中的js文件=>注冊驗證成功的全局回調函數。具體操作如下:

const antiReptilian = { install(Vue, options) { Vue.$antirept = checkText => { if (!checkText) return; let wrapperTemp = Vue.extend({ // 1、創建構造器,定義模板 template: ’<div style='z-index:9999 !important;'></div>’ }); let antiObj = new wrapperTemp().$mount().$el; // 2、創建實例 antiObj.innerHTML = checkText; initScripts(antiObj);//3、解析并順序執行js let App = document.getElementById(’app’); let wrapper = document.getElementById(’antiReptWrapper’); if (wrapper) { return; } App.appendChild(antiObj); // 4、把創建的實例添加到App中 window.checkSucceed = res => { // 5、驗證通過后移除實例 App.removeChild(antiObj); window.location.reload(); }; }; }};

需要注意的是通過設置innerHTML 的方式加載驗證頁面會導致內部的js文件不執行;因此我們還必須將驗證頁面的的js文件提取出來再重新插入,并且還要保證內部多個js文件的執行順序,具體代碼如下:

//重新引入js文件const initScripts = function(cont) { let oldScripts = cont.getElementsByTagName(’script’); let newScripts = []; for (let i = 0; i < oldScripts.length; i++) {//提取內部js文件 let newScript = document.createElement(’script’); newScript.type = ’text/javascript’; newScript.innerHTML = oldScripts[i].innerHTML; if (oldScripts[i].src) { newScript.src = oldScripts[i].src; } newScripts.push(newScript); } while (oldScripts.length !== 0) { cont.removeChild(oldScripts[0]);//移除之前的js文件 } for (let i = 0; i < newScripts.length; i++) { if (i == 0) { cont.appendChild(newScripts[i]); } else {//保證每個js文件按照之前的順序執行 newScripts[i - 1].onload = newScripts[ i - 1 ].onreadystatechange = function(event) { cont.appendChild(newScripts[i]); }; } }};

到此為止這個簡單的插件功能就完成了,在需要的地方引入、注冊并調用Vue.$antirept()方法傳入要加載的頁面即可;

將寫好的插件生成npm包的方法也簡單,分為以下幾步:

1、前往npm官網注冊一個npm賬號=>【npm官網】;

2、將寫好的插件生成一個簡單的npm包:

創建一個空文件夾,名稱即為你的npm包的名稱,注意名稱不要與現有的npm包重復; 切到該文件夾下,輸入‘npm init’命令生成一個package.json文件,內部信息自定義; 將寫好的插件js文件拷到該文件夾下,重命名為index.js; 在根目錄下創建README.md文件,添加關于包的介紹信息(非必需);

3、發布創建好的包:

1. 若第一次發布包,執行‘ npm adduser’命令,輸入前面注冊好的npm賬號,密碼和郵箱;2. 若不是第一次發布包,執行‘ npm login’命令進行登錄,同樣輸入npm賬號,密碼和郵箱;3. 登錄成功以后,在剛才的文件夾下,執行‘npm publish’命令,即可發布該npm包;4. 若要更新之前的包,只需要更改版本號,再執行‘npm publish’命令即可;

至此一個簡單的vue插件就生成了一個npm包了,以后使用就不需要加載js文件,可以直接通過npm的方式引入了,其它的小伙伴也可以一起愉快的玩耍了==>全劇終。

以上就是如何構建一個Vue插件并生成npm包的詳細內容,更多關于vue生成npm包的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美精品第1页| 国产精品色哟哟| 精品国产百合女同互慰| 国产精品综合av一区二区国产馆| 91麻豆精品国产综合久久久久久| 国产精品888| 国产精品久久久久久久久图文区 | 免费在线视频一区| 欧美日韩国产在线观看| 亚洲男人天堂av网| 欧美日韩三级在线| 狠狠综合久久av一区二区老牛| 一区二区三区日韩精品视频| 欧美日本精品一区二区三区| 国产高清精品在线| 亚洲色图清纯唯美| 色综合久久久久久久久久久| 99在线精品观看| 亚洲国产精品久久不卡毛片| 精品视频资源站| 欧美日韩国产亚洲一区| 亚洲自拍另类综合| 欧美日韩精品免费观看视频| 欧美成人一区二免费视频软件| 天天操天天干天天综合网| 国产性做久久久久久| 欧美综合一区二区三区| 激情久久久久久| 激情图片小说一区| 欧美视频完全免费看| 成人国产精品免费观看动漫| 亚洲国产精品人人做人人爽| 国产日产欧美一区二区三区| 先锋亚洲精品| 欧美1级日本1级| 国产专区综合网| 天堂成人国产精品一区| 亚洲美女在线一区| 国产精品成人一区二区三区夜夜夜| 91精品国产综合久久蜜臀| 免费视频久久| 国产精品一二三区| 久久精品国产精品青草| 亚洲不卡一区二区三区| 最新国产成人在线观看| 久久亚洲二区三区| 91精品久久久久久久久99蜜臂| 亚洲欧洲日本一区二区三区| 国产精品一二三四区| 另类欧美日韩国产在线| 亚洲成人免费观看| 日韩美女视频一区二区 | 亚洲一区二区黄色| 亚洲欧美日本在线| 自拍偷拍欧美精品| 亚洲国产高清在线观看视频| 国产日韩在线不卡| 久久久美女毛片| 精品国产91亚洲一区二区三区婷婷| 国产一区二区三区的电影| 欧美网站在线| av一区二区不卡| 99re视频这里只有精品| 99re热这里只有精品视频| av激情综合网| 99视频有精品| 国内精品福利| 制服丝袜国产精品| 欧美精品成人| 成人免费视频caoporn| 欧美三级日韩在线| 久久精品72免费观看| 久久99精品久久久久久| 美国三级日本三级久久99| 久久国产日韩欧美精品| 性欧美大战久久久久久久久| 久久久国产一区二区三区四区小说| 久久无码av三级| 亚洲精品视频免费观看| 一区二区三区在线免费播放| 一区二区三区日韩欧美| 琪琪一区二区三区| 久久狠狠亚洲综合| 亚洲欧美电影一区二区| 国产精品家庭影院| 一区二区三区波多野结衣在线观看 | 欧美日韩理论| 欧美高清hd18日本| 一区二区三区蜜桃网| 96av麻豆蜜桃一区二区| 欧美怡红院视频| 黄色在线成人| 久久亚洲捆绑美女| 激情综合网天天干| 色综合久久99| 亚洲免费av网站| 亚洲电影自拍| 中文字幕一区二区三区在线播放| 国产一区二区成人久久免费影院| 色天天综合久久久久综合片| 一区二区三区日本| 欧美精品大片| 久久夜色精品一区| 波多野结衣亚洲| 日韩欧美黄色影院| 一区二区三区免费观看| 亚洲高清二区| 最新不卡av在线| 樱桃成人精品视频在线播放| 国产欧美中文在线| 欧美视频成人| 国产精品国产三级国产专播品爱网| 成人短视频下载| 久久婷婷国产综合国色天香| www.色综合.com| 国产日产欧美精品一区二区三区| 国产不卡在线视频| 精品av久久707| 国内成+人亚洲| 亚洲另类春色国产| 亚洲专区欧美专区| 午夜精品久久一牛影视| 久久亚洲一区| 久久精品国产第一区二区三区| 欧美日韩国产一级二级| 国产盗摄女厕一区二区三区| 日韩一区二区不卡| 欧美国产欧美综合| 狠久久av成人天堂| 亚洲欧美日韩精品久久久久| 国户精品久久久久久久久久久不卡| 欧美激情一区二区三区不卡| 精品99视频| 日本大胆欧美人术艺术动态| 欧美日韩aaa| 国产盗摄视频一区二区三区| 日韩一区二区精品葵司在线| 成人动漫在线一区| 国产精品视频第一区| 99pao成人国产永久免费视频| 蜜桃视频在线观看一区| 久久久久久久av麻豆果冻| 日韩香蕉视频| 国产精品影视在线观看| 成人欧美一区二区三区白人 | 欧美日韩国产综合久久 | 欧美日韩一卡| 日韩**一区毛片| 精品88久久久久88久久久| 一二三区精品| 国产精品一区在线| 亚洲精品日韩一| 91精品国产色综合久久不卡电影| 日韩午夜av在线| 国内精品伊人久久久久av一坑 | 欧美日韩在线播放一区二区| 捆绑变态av一区二区三区| 欧美国产日本韩| 色国产精品一区在线观看| 欧美福利影院| 国产二区国产一区在线观看| 亚洲一区在线观看视频| 国产色综合一区| 欧美日韩不卡在线| 麻豆9191精品国产| 国产精品一线二线三线| 亚洲福利视频一区二区| 国产精品少妇自拍| 日韩欧美亚洲国产精品字幕久久久 | 一区二区在线不卡| 黄色小说综合网站| 偷拍一区二区三区| 亚洲人妖av一区二区| 久久久久青草大香线综合精品| 欧洲国内综合视频| 亚洲精品美女| 99久久精品国产一区二区三区| 免费成人小视频| 午夜精品久久久久久| 中文字幕一区不卡| 国产精品视频yy9299一区| 精品国产91久久久久久久妲己| 欧美日韩你懂的| 欧美日韩中文字幕一区| 久久综合九色| 香蕉国产精品偷在线观看不卡| 国产视频久久| 亚洲一区二区三区在线观看视频| 亚洲人成久久| 一本色道久久综合亚洲精品婷婷 | 久久久99爱| 日本高清成人免费播放| 久久精品日韩| 久久久国产精品一区二区中文| 一区二区三区四区五区精品| 99精品视频免费观看视频| 亚洲人体偷拍| 亚洲综合三区| 久久久综合网| 欧美日韩一级视频|