實現乙個簡單的Vue外掛程式

2022-05-31 15:21:06 字數 1542 閱讀 4991

外掛程式通常會為 vue 新增全域性功能。外掛程式的範圍沒有限制——一般有下面幾種:

1.新增全域性方法或者屬性,如: vue-custom-element

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

3.通過全域性 mixin 方法新增一些元件選項,如: vue-router

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

5.乙個庫,提供自己的 api,同時提供上面提到的乙個或多個功能,如 vue-router

vue.js 的外掛程式應當有乙個公開方法 install 。這個方法的第乙個引數是 vue 構造器,第二個引數是乙個可選的選項物件:

myplugin.install = function (vue, options) 

// 2. 新增全域性自定義指令

vue.directive('my-directive',

...})

// 3. 新增全域性mixin

vue.mixin(

...})

// 4. 新增例項方法

vue.prototype.$mymethod = function (methodoptions)

}

}

import vue from 'vue';

import toastcomponent from './toast.vue';

const toastconstruction = vue.extend(toastcomponent); // 建立vue子類

function showtoast (text, duration = 2000) , duration);

}function registrytoast()

});// 新增全域性指令

vue.directive('show-toast', );

}});}

export default registrytoast;

這樣,乙個簡單的toast外掛程式就做好了!

全域性入口檔案main.js

...

import vue from 'vue';

import mytoast from './plugin/toast';

vue.use(mytoast); // 相當於呼叫外掛程式的 install 方法(如果外掛程式是乙個物件,必須提供 install 方法。如果外掛程式是乙個函式,它會被作為 install 方法。install 方法呼叫時,會將 vue 作為引數傳入。)

...

需要呼叫toast的頁面page/page.vue

...

全域性方法

例項方法

mixin

指令 // 使用指令觸發

...

mvvm實現乙個簡單的vue

vue,基於mvvm模式下的乙個前端框架 mvvm模式下簡單的實現資料 資料劫持 1.是用object.defineproperty 實現資料 2.使用發布訂閱者模式,配合 object.defineproperty,實現資料劫持 資料劫持包括依賴收集和依賴促發 只考慮最簡單的方式,並且沒有包括具體...

製作乙個vue外掛程式

myplugin.install function vue,options 2.新增全域性資源 vue.directive my directive 3.注入元件 vue.mixin 4.新增例項方法 vue.prototype.mymethod function methodoptions 用 b...

vue 封裝乙個外掛程式

1 建立乙個vue元件button button.vue 2 vue.js 的外掛程式有乙個公開方法install方法,第乙個引數是vue構造器,第二個引數是乙個可選的選項物件,我們可以通過這個方法來定義外掛程式button index.js import buttoncom from button...