vue 自定義外掛程式

2021-09-27 10:28:41 字數 1694 閱讀 7359

最近要在乾坤袋裡面加開發三個全域性元件,所以來學習下這部分的知識~

(一)外掛程式和元件的區別

元件:是對 某功能 或者 某模組 的封裝 (比如 loading、toast 等)

外掛程式:是對一系列元件的封裝 (比如 vuex、vue-router),外掛程式裡面可以有很多元件

外掛程式與元件的關係:

外掛程式可以封裝元件,元件暴露資料給外掛程式

(二)外掛程式的優點

1. 開箱即用

2. 功能比元件更強大、更豐富

3. 一次引入、終生受益

4. 打包帶走、隨走隨用 (比如vue、react 都可使用等等)

(三)vue 外掛程式分類

1. 新增全域性方法或者屬性 (如vue-element)

2. 新增全域性資源:指令/過濾器/過渡等,如 vue-touch

3. 通過全域性 main 方法 新增一些元件選項,如 vuex

4. 新增 vue 例項方法,通過把他們新增到 vue.prototype 上面實現

(四) 用到的語法

vue.component  用於生成全域性元件, 它接受兩個引數

vue.component('元件名稱', 元件)
這讓我想到了 前兩天剛剛在vue原型上掛載過全域性元件,

詳情見文章:

但當時使用的指令是 vue.extend,所以這兩個指令有什麼區別呢?

在官方文件上看到了這樣一句話:

vue.component('my-component', vue.extend())
總結:

1. vue.extend 是構造乙個元件的語法器,你給它引數 他給你乙個元件

2. 區別參考這篇文章:

前幾天的部落格就是使用第二種方法例項化的

4. 建立例項構造器 (vue.extend)---> 構造器例項化 (vue.component)

(五)自定義乙個 toast 全域性元件

toast.vue

position: absolute;

top: 50%;

left: 50%;

transform: translate(-50%, -50%);

max-width: 5rem;

line-height: 0.35rem;

white-space: wrap;

padding: 0.25rem;

border-radius: 6px;

color: #fff;

font-size: 0.18rem;

background: rgba(0,0,0, 0.8)

}toast.js

import vue from 'vue'

import toast from './toast.vue' // 引入元件

toast.install = function ()

export default toast

main.js

import toast from './common/toast/toast.js'

vue.use(toast)

使用:

自定義Vue外掛程式

在vue專案中,需要用到公共的方法時,可以將這些方法寫在外掛程式裡。在外掛程式裡可以自己定義全域性的變數,過濾器 指令 例項上的方法等。使用外掛程式可以為vue新增全域性功能,包括全域性方法或屬性 全域性資源 指令 過濾器 過渡等 通過全域性mixin方法新增一些元件選項 新增例項方法 新增庫 目前...

自定義Vue外掛程式

今天咱們來玩一下vue中的自定義元件,此案例直接通過script引入js的形式定義元件 我是簡單的寫了乙個彈出框的小外掛程式 css樣式 這就不需要解釋了吧,強擼 html結構 元件核心js var alert 此處的install方法 是vue中規定好的 alert.install functio...

vue之自定義外掛程式

1 外掛程式的作用 2 開發外掛程式並且使用 在專案目錄下建立plugins.js檔案,用於寫入外掛程式內容 function 宣告乙個外掛程式物件 myplugin.install function vue,options 2.新增全域性資源 vue.directive my directive ...