欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue插件從封裝到發(fā)布的完整步驟記錄

 更新時間:2019年02月28日 15:16:37   作者:天微蔚藍(lán)  
這篇文章主要給大家介紹了關(guān)于Vue插件從封裝到發(fā)布的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧

插件的分類

  • 添加全局的方法或者屬性 比如:vue-element
  • 添加全局的資源 比如:指令 v-bind
  • 通過mixin方法添加的一些混合
  • 添加Vue實例方法 Vue.prototype上面

插件的使用

通過全局方法 Vue.use() 使用插件。它需要在你調(diào)用 new Vue() 啟動應(yīng)用之前完成:

// 調(diào)用 `MyPlugin.install(Vue)`
Vue.use(MyPlugin)

new Vue({
 //... options
})```

也可以傳入一個選項對象:
``` javascript
Vue.use(MyPlugin, { someOption: true })

插件開發(fā)

Vue.js 的插件有一個公開方法 install。這個方法的第一個參數(shù)是 Vue 構(gòu)造器,第二個參數(shù)是一個可選的選項對象:

MyPlugin.install = function (Vue, options) {
 // 1. 添加全局方法或?qū)傩?
 Vue.myGlobalMethod = function () {
 // 邏輯...
 }

 // 2. 添加全局資源
 Vue.directive('my-directive', {
 bind (el, binding, vnode, oldVnode) {
  // 邏輯...
 }
 ...
 })

 // 3. 注入組件
 Vue.mixin({
 created: function () {
  // 邏輯...
 }
 ...
 })

 // 4. 添加實例方法
 Vue.prototype.$myMethod = function (methodOptions) {
 // 邏輯...
 }

 //5.直接注冊組件
 Vue.use();
}

其實無論采用什么方式,最終的目的則是在項目中可以使用,借助install 的Vue參數(shù)具體自己進(jìn)行封裝

從零開始的組件封裝

需求: 封裝一個微博表情的enoji插件

準(zhǔn)備

node環(huán)境 vue環(huán)境 vue-cli腳手架 等等

創(chuàng)建工程

使用vue init 創(chuàng)建簡單腳手架,簡單修改就可以適合插件開發(fā)

vue init webpack-simple weibo-emoji
cd weibo-emoji
npm install

開發(fā)目錄如下:

插件實現(xiàn)

項目具體邏輯實現(xiàn)可以去這里查看源碼

我們正常webpack的entry入口一般會設(shè)置為main.js 做一些依賴引入和視圖掛載等的操作,當(dāng)我們編寫插件的時候理所當(dāng)然的就會省去掛載這一步操作了。

這里我們可以將index.js作為我們的入口文件,暴露出去的則是一個有這install方法的插件對象

代碼如下:

import weiboEmoji from './compontent/weibo_emoji'
const emoji = {
 install(Vue, options) {
  Vue.component(weiboEmoji.name, weiboEmoji);
 }
}
if (typeof window !== 'undefined' && window.Vue) {
 window.Vue.use(emoji);
}
export default emoji 

發(fā)布

發(fā)布之前檢查一下webconfig配置:

 entry: './src/index.js',// 入口
 output: {
  path: path.resolve(__dirname, './dist'),//打包輸出目錄
  publicPath: '/dist/',// 靜態(tài)資源前綴
  filename: 'vue-weibo-emoji.js', //打包生成文件的名字
  library: 'WeiboEmoji', //umd 打包的時候模塊的名字
  libraryTarget: 'umd',//打包方式 amd
  umdNamedDefine: true //打包未定義的時候使用默認(rèn)名字
 },

檢查發(fā)布配置:

 "name": "weibo-emoji", // 打包的項目名,也就是modemodules里面的文件夾名字 也就是import from之后跟的名字
 "main": "dist/vue-weibo-emoji.js", // 是訪問到nodemodules依賴,實際引入的文件 相當(dāng)于入口
 "repository": {// 倉庫 貌似倉庫內(nèi)容也不影響發(fā)布內(nèi)容,填對就行
  "type": "git",
  "url": "https://github.com/icebluesky2666/weibo-emoji"
 },
 "description": "A Weibo emoji plugn",// 描述
 "version": "1.0.2",// 版本
 "author": "jhqin",// 作者
 "license": "MIT",// license 類型

對于多次發(fā)布,必須每次的版本號都不同

最后:

 npm build
 npm login
 npm publish

使用

import WeiboEmoji from 'weibo-emoji'
Vue.use(WeiboEmoji)
<weibo-emoji class="emoji" :weiboIcon="weiboIcon" @changeEmoji="selsctEmoji = arguments[0].phrase" ref="emoji"> </weibo-emoji>

效果:

源碼

Weibo-Emoji (本地下載)

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關(guān)文章

  • vue cli實現(xiàn)項目登陸頁面流程詳解

    vue cli實現(xiàn)項目登陸頁面流程詳解

    CLI是一個全局安裝的npm包,提供了終端里的vue命令。它可以通過vue create快速搭建一個新項目,或者直接通過vue serve構(gòu)建新想法的原型。你也可以通過vue ui通過一套圖形化界面管理你的所有項目
    2022-10-10
  • Vue兩個同級組件傳值實現(xiàn)

    Vue兩個同級組件傳值實現(xiàn)

    Vue組件之間是有聯(lián)系的,避免不了組件之間要互相傳值,那么如何實現(xiàn)Vue兩個同級組件傳值,本文就來介紹一下,感興趣的可以了解一下
    2021-07-07
  • Vue el-table表頭上引入組件不能實時傳參解決方法分析

    Vue el-table表頭上引入組件不能實時傳參解決方法分析

    這篇文章主要介紹了Vue el-table表頭上引入組件不能實時傳參解決方法,總的來說這并不是一道難題,那為什么要拿出這道題介紹?拿出這道題真正想要傳達(dá)的是解題的思路,以及不斷優(yōu)化探尋最優(yōu)解的過程。希望通過這道題能給你帶來一種解題優(yōu)化的思路
    2022-11-11
  • 一文探索Vue中組件和插件使用細(xì)節(jié)與差異

    一文探索Vue中組件和插件使用細(xì)節(jié)與差異

    Vue組件和插件是Vue生態(tài)系統(tǒng)中的兩種重要概念,它們分別服務(wù)于不同的目的,但都極大地豐富了Vue的功能性和可擴(kuò)展性,下面我們就來看看二者的用法以及區(qū)別吧
    2024-03-03
  • ElementUI年份范圍選擇器功能實現(xiàn)

    ElementUI年份范圍選擇器功能實現(xiàn)

    elementUI中有日期范圍組件,月份范圍選擇的,就是沒有年份范圍選擇的,需要加一個類似風(fēng)格的,下面這篇文章主要給大家介紹了關(guān)于ElementUI年份范圍選擇器功能實現(xiàn)的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • vue3中echarts的tooltip組件不顯示問題及解決

    vue3中echarts的tooltip組件不顯示問題及解決

    這篇文章主要介紹了vue3中echarts的tooltip組件不顯示問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • 解決vue 按鈕多次點擊重復(fù)提交數(shù)據(jù)問題

    解決vue 按鈕多次點擊重復(fù)提交數(shù)據(jù)問題

    這篇文章主要介紹了vue 按鈕多次點擊重復(fù)提交數(shù)據(jù)的問題,本文通過實例結(jié)合的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-05-05
  • Vue如何將頁面導(dǎo)出成PDF文件

    Vue如何將頁面導(dǎo)出成PDF文件

    這篇文章主要為大家詳細(xì)介紹了Vue如何將頁面導(dǎo)出成PDF文件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-08-08
  • Vue3 Suspense處理異步組件加載的工作原理

    Vue3 Suspense處理異步組件加載的工作原理

    Vue3在新版本中提供了一個新的API,稱為Suspense,它可以使異步組件的加載更加高效和流暢,在本文中,我們將詳細(xì)了解 Vue3 Suspense 處理異步組件加載的工作原理以及如何使用它來提高 Web 應(yīng)用程序的性能
    2023-06-06
  • vue懸浮可拖拽懸浮按鈕的實例代碼

    vue懸浮可拖拽懸浮按鈕的實例代碼

    這篇文章主要介紹了vue懸浮可拖拽懸浮按鈕的實例代碼,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08

最新評論