精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

手把手教你在 Vue3 中自定義插件

開發
最近在錄 TienChin 項目,項目涉及到了 Vue 中插件的定義,因此整了這么一篇文章,手把手教大家在 Vue3 中定義插件,這個技能掌握了,就可以看懂 TienChin 前端代碼了。

最近在錄 TienChin 項目,項目涉及到了 Vue 中插件的定義,因此整了這么一篇文章,手把手教大家在 Vue3 中定義插件,這個技能掌握了,就可以看懂 TienChin 前端代碼了。

1. Vue 插件

在 Vue 中,一些簡單的功能,我們可以直接定義為全局方法,然后掛到 Vue 上就能使用了,例如在 vhr 中,我們將網絡請求方法進行封裝,然后掛到了 Vue.prototype 上就可以了,類似下面這樣:

import {postRequest} from "./utils/api";

Vue.prototype.postRequest = postRequest;

然后在使用的地方,就可以通過 this.postRequest 去使用了。

小伙伴們需要注意,這個在 Vue3 中有所變化,prototype 變為了 config.globalProperties,也就是在 Vue3 中再想要掛載全局方法,應該是 const app = createApp(App);app.config.globalProperties.useDict = useDict 這種形式了(具體我將在 TienChin 項目中和大家細聊)。

這也算是一種插件定義方式,但是這種一般適用于一些工具方法,無法定義一些比較復雜的插件,復雜的插件還是得通過 Vue 中提供的插件定義方式來定義。

2. 自定義插件

2.1 基本用法

首先我們新建一個目錄 plugins 專門用來放我們的插件,然后在這個目錄中新建一個 index.js 文件用來開發插件,內容如下:

export default {
install: (app, options) => {
console.log("我的第一個插件")
}
};

install 中的方法將會被自動執行。

接下來我們就可以在 main.js 中引入我們這個插件了:

const app = createApp(App);

import plugin from './plugins'

app.use(plugin);

app.use 就表示引入插件,引入插件之后,插件中的 install 方法就會被自動執行。

app.use 方法接收兩個參數,第一個參數就是我們導入的插件 js 對象,第二個參數是可選的,大家看到插件定義時候的 install 方法有兩個參數,第一個參數是 Vue 實例,這是自動傳入的,第二個參數 options 則是我們在 app.use 中,通過第二個參數傳入進來的。當然上面這個例子中松哥沒有傳遞第二個參數。

好了,如此配置之后,接下來啟動項目,控制臺就可以看到有日志打出了。

圖片

這樣的插件未免過于簡單,接下來我們就給這個插件加點料。

2.2 加入組件

首先我們定義一個新的組件,如下:

<template>
<div>
<h1><a href="http://www.javaboy.org">javaboy</a></h1>
</div>
</template>

<script>
export default {
name: "MyBanner"
}
</script>

然后我們現在就可以在插件中將這個組件注冊為一個全局組件了,如下:

import MyBanner from "@/plugins/components/MyBanner";

export default {
install: (app, options) => {
console.log("我的第一個插件")
app.component('my-banner', MyBanner);
}
};

首先在插件中導入這個組件,然后通過 app 進行組件注冊,注冊完成后,我們就可以在項目任意位置使用 my-banner 組件了,如下:

<template>
<div>
<my-banner></my-banner>
</div>
</template>

最終顯示效果如下:

圖片圖片

2.3 加入指令

我們甚至還可以在插件中注冊一個指令,如下:

import MyBanner from "@/plugins/components/MyBanner";

export default {
install: (app, options) => {
console.log("我的第一個插件")
app.component('my-banner', MyBanner);
app.directive("font-size", (el, binding, vnode) => {
var size = 16;
switch (binding.arg) {
case "small":
size = 16;
break;
case "large":
size = 32;
break;
default:
size = 48;
break;
}
el.style.fontSize = size + "px";
});
}
};

現在,我們就可以在項目中隨時隨地去使用這個指令了,例如在我們剛剛自定義的 my-banner 中使用這個指令:

<template>
<div>
<h1><a href="http://www.javaboy.org" v-font-size:small>javaboy</a></h1>
</div>
</template>

<script>
export default {
name: "MyBanner"
}
</script>

我們甚至可以通過 options 將指令中字體的大小動態的傳進來,如下:

import MyBanner from "@/plugins/components/MyBanner";

export default {
install: (app, options) => {
console.log("我的第一個插件")
app.component('my-banner', MyBanner);
app.directive("font-size", (el, binding, vnode) => {
var size = 16;
switch (binding.arg) {
case "small":
size = options.small;
break;
case "large":
size = options.large;
break;
default:
size = options.defaut;
break;
}
el.style.fontSize = size + "px";
});
}
};

options 是插件注冊時候傳入的一個 JSON 參數,small、large 以及 default 分別對應的字體多大,要看插件注冊時傳入的值:

const app = createApp(App);

import plugin from './plugins'

app.use(plugin, {small: 16, large: 32, default: 48});

第二個參數,大家看,就是 options 參數的值。

現在大家想想我們平時用 ElementUI 的時候,Vue.use 方法,傳入 ElementUI,再傳入一些其他參數,看了上面這個例子,ElementUI 引入到底是怎么個引入法現在大家就明白了吧。

2.4 provide & inject

在插件中,也可以通過 provide 來提供一個方法,在需要使用該方法的地方,通過 inject 注入方法,然后就可以使用了,如下:

import MyBanner from "@/plugins/components/MyBanner";

export default {
install: (app, options) => {
console.log("我的第一個插件")
app.component('my-banner', MyBanner);
app.directive("font-size", (el, binding, vnode) => {
var size = 16;
switch (binding.arg) {
case "small":
size = options.small;
break;
case "large":
size = options.large;
break;
default:
size = options.defaut;
break;
}
el.style.fontSize = size + "px";
});
const clickMe = () => {
console.log("==========clickMe=========")
}
app.provide('clickMe', clickMe);
}
};

在需要使用的地方,通過 inject 注入方法后就可以使用了,如下:

<template>
<div>
<h1><a href="http://www.javaboy.org" v-font-size:small>javaboy</a></h1>
</div>
</template>

<script>

import {inject} from "vue";

export default {
name: "MyBanner",
mounted() {
const clickMe = inject('clickMe');
clickMe();
}
}
</script>

3. 小結

整體上來說,通過這種方式來自定義插件,能夠實現的內容比較豐富。如果只是想掛一個全局方法來用,那么其實是沒有必要定義插件的。如果只是想掛載一個全局方法,在 Vue2 中可以按照如下方式使用:

Vue.prototype.postRequest = postRequest;

在 Vue3 中則可以通過如下方式:

app.config.globalProperties.useDict = useDict
責任編輯:趙寧寧 來源: 江南一點雨
相關推薦

2022-07-26 01:06:18

Vue3自定義指令

2022-05-11 10:45:21

SpringMVC框架Map

2021-02-26 11:54:38

MyBatis 插件接口

2024-04-02 08:58:13

2024-03-05 18:27:43

2011-04-28 15:09:15

jQueryjqPlot

2022-03-24 15:28:43

Vue開發框架

2023-07-30 15:11:03

Vue3第三方組件庫

2009-06-02 15:38:36

eclipse streclipse開發steclipse str

2021-11-30 08:19:43

Vue3 插件Vue應用

2023-05-29 09:37:17

Vue3Vite

2021-07-14 09:00:00

JavaFX開發應用

2011-05-03 15:59:00

黑盒打印機

2011-01-10 14:41:26

2025-05-07 00:31:30

2020-06-01 16:25:43

WindowsLinux命令

2011-03-28 16:14:38

jQuery

2024-03-18 18:07:38

VSCode插件文件

2023-04-26 12:46:43

DockerSpringKubernetes

2022-01-08 20:04:20

攔截系統調用
點贊
收藏

51CTO技術棧公眾號

国产成人精品久久二区二区| 日韩av在线一区| 穿情趣内衣被c到高潮视频| 国产巨乳在线观看| 亚洲久色影视| 少妇激情综合网| 久久久久国产免费| 国产韩日精品| 亚洲午夜日本在线观看| 日韩色妇久久av| 亚洲精品97久久中文字幕| 蜜桃伊人久久| 久久频这里精品99香蕉| 少妇一级黄色片| 欧美激情15p| 欧美一区二区美女| 国产三级日本三级在线播放| 任你弄在线视频免费观看| www成人在线观看| 亚洲aaa激情| 国产99久久久久久免费看| 国产精品hd| 中文字幕欧美日韩精品| 精品无码国产一区二区三区51安| 久久91超碰青草在哪里看| 午夜精品影院在线观看| 中文字幕日韩一区二区三区不卡 | 欧美一区二区三区播放老司机| 精品视频免费在线播放| 在线xxxx| 综合色天天鬼久久鬼色| 婷婷四月色综合| 亚洲日本国产精品| 成人国产精品免费网站| 亚洲一区二区在线播放| 一区二区乱子伦在线播放| 在线日韩中文| 久久99精品久久久久久琪琪| 成人无码精品1区2区3区免费看| 天堂成人娱乐在线视频免费播放网站 | 正在播放亚洲1区| 一女三黑人理论片在线| jizz18欧美18| 日韩免费视频一区二区| 午夜xxxxx| 黄色成人小视频| 欧美性猛片aaaaaaa做受| 久久国产乱子伦免费精品| 成人女同在线观看| 亚洲午夜影视影院在线观看| 国产激情片在线观看| av毛片在线看| 亚洲免费在线播放| 四虎4hu永久免费入口| 欧美另类极品| 亚洲女与黑人做爰| 欧美少妇在线观看| 日韩三级免费| 亚洲国产乱码最新视频 | 精品中文字幕一区二区| 国产美女精品视频| 一级爱爱免费视频| 国模一区二区三区白浆| 91久久精品一区二区别| www.黄色一片| 99久久国产综合精品色伊| 久久精品日产第一区二区三区精品版| 五月天福利视频| 91一区二区三区在线观看| 久久九九视频| 黑人与亚洲人色ⅹvideos| 国产亚洲美州欧州综合国| 亚洲成人精品电影在线观看| 91av资源在线| 亚洲精品视频在线观看免费| 久久99久久99精品| 国产精品专区免费| 欧美日韩精品高清| 亚洲精品久久久久久| 久久人人爽人人爽人人片av不| 日韩精品在线视频| 国产视频不卡在线| 欧美精选一区| 日本久久91av| 国产乱码精品一区二区三区精东 | 欧美日韩一区二区三区四区| 三年中文在线观看免费大全中国| 国产精品白丝av嫩草影院| 亚洲人成电影在线播放| 手机av在线看| 在线亚洲欧美| 成人妇女淫片aaaa视频| 欧性猛交ⅹxxx乱大交| 国产亚洲欧洲997久久综合 | 亚洲成人三级| 亚洲高清在线视频| 99热手机在线| ady日本映画久久精品一区二区| 亚洲美女自拍视频| 欧美丰满艳妇bbwbbw| 性欧美videos另类喷潮| 亚洲中国色老太| 牛牛澡牛牛爽一区二区| 亚洲精品欧美综合四区| 黑森林福利视频导航| 狂野欧美xxxx韩国少妇| 亚洲奶大毛多的老太婆| 国产又黄又爽又无遮挡| 日韩和欧美一区二区| 国产精品亚洲综合| 国产一二区在线| 日本韩国欧美一区| 毛茸茸free性熟hd| 亚洲成人免费| 国产精品久久久久久久久久久久久 | 久热精品在线| 成人在线免费网站| 久久bbxx| 精品视频一区二区三区免费| 屁屁影院国产第一页| 欧美在线亚洲| 国产日韩欧美日韩| 国产一级二级三级在线观看| 亚洲国产一区二区a毛片| 五月天中文字幕在线| 国产影视一区| 777777777亚洲妇女| www久久久com| 亚洲天天做日日做天天谢日日欢| www.国产区| 欧美性生活一级片| 欧美激情视频在线观看| 国产精品嫩草影院精东| 国产日本亚洲高清| 亚洲精品乱码久久久久久自慰| 国产成人福利av| 欧美激情一级精品国产| 国产乱人乱偷精品视频| 国产精品久久久久影视| 色综合天天色综合| 国产成人精品免费视| 欧美亚洲午夜视频在线观看| 日韩在线视频免费| 亚洲成人www| 日本人添下边视频免费| 黄色av成人| 国产精品二区三区四区| 欧美aaaxxxx做受视频| 日韩精品一区二区三区在线观看| 丁香花五月激情| 国产自产v一区二区三区c| ijzzijzzij亚洲大全| 91精品麻豆| 久久国产精品电影| а√天堂资源在线| 亚洲综合成人在线视频| 日本性生活一级片| 国产偷自视频区视频一区二区| 国产99久久久国产精品潘金网站| 精品嫩草影院久久| 精品少妇theporn| 丁香亚洲综合激情啪啪综合| 日韩 欧美 视频| 麻豆一区一区三区四区| 国产91对白在线播放| 日韩av高清在线| 欧洲日韩一区二区三区| 日韩欧美在线视频播放| 国产老妇另类xxxxx| 六月婷婷激情网| 66精品视频在线观看| 97在线观看免费高清| 欧美色18zzzzxxxxx| 欧美三级视频在线观看| 欧美日韩精品亚洲精品| eeuss鲁片一区二区三区在线观看 eeuss影院一区二区三区 | 国产模特av私拍大尺度| 亚洲最大成人综合| 波多野结衣先锋影音| 日韩影院精彩在线| 黑人巨大国产9丨视频| 高清日韩中文字幕| 日韩av黄色在线观看| 巨大荫蒂视频欧美另类大| 精品国产污网站| 日韩国产成人在线| 亚洲精品乱码久久久久| 北岛玲一区二区| 久久精品国产成人一区二区三区| 精品视频在线观看一区二区| 图片婷婷一区| 亚洲中国色老太| 免费福利视频一区二区三区| 久久久精品日本| 天堂v视频永久在线播放| 欧美日韩激情一区二区| 日韩成人高清视频| 国产精品久久二区二区| 亚洲国产综合视频| 国产一区二区不卡老阿姨| av7777777| 欧美成人中文| 欧美中日韩一区二区三区| 亚洲一级大片| 国产精品亚洲欧美导航| 免费成人在线电影| 久久夜色精品国产欧美乱| 黄色av免费在线看| 精品国产乱码久久久久久浪潮 | 日韩视频在线永久播放| 亚洲av无码不卡| 午夜在线电影亚洲一区| 午夜精品福利在线视频| 国产欧美一区二区三区在线看蜜臀 | 免费成人深夜夜行网站视频| 国产精品一区二区av交换| 国产精品国产精品国产专区蜜臀ah | 国产一级伦理片| 国产裸体歌舞团一区二区| 日韩免费高清在线| 久久成人免费| 精品人妻少妇一区二区| 欧美深夜福利| 国产卡一卡二在线| 91视频久久| 污视频在线免费观看一区二区三区| 美日韩黄色大片| 懂色中文一区二区三区在线视频| 亚洲aⅴ网站| 国产精品一区久久久| 一区二区视频免费完整版观看| 91极品女神在线| 美洲精品一卡2卡三卡4卡四卡| 久久久精品视频成人| 久久精品视频免费看| 久久精品国产亚洲7777| 精品黄色免费中文电影在线播放| 中文字幕亚洲国产| 东凛在线观看| 中文字幕免费精品一区高清| jizzjizz在线观看| 中文字幕av一区| 免费在线看a| 久久深夜福利免费观看| av在线资源网| 最近2019中文字幕一页二页| 91啦中文在线| 精品精品国产国产自在线| 成人a在线视频免费观看| 精品国产美女在线| 国产不卡在线| 色综合视频一区中文字幕| 免费网站在线观看人| 韩国福利视频一区| 日韩av影片| 国产成人亚洲综合91精品| 欧美日一区二区三区| 成人午夜黄色影院| 日韩一区二区三区精品| 国产精品视频入口| 三级精品视频| 日本一区二区三不卡| 久久中文字幕二区| 992tv快乐视频| 国产农村妇女毛片精品久久莱园子| 亚洲成熟丰满熟妇高潮xxxxx| 久久亚洲风情| 日日干日日操日日射| 国产成人综合视频| 日韩网站在线播放| 国产精品久线观看视频| 欧美成人精品激情在线视频| 午夜精品一区在线观看| 99精品在线播放| 欧美精品一二三| 黄色片一区二区| 一区二区三区精品99久久| 最新日本在线观看| 欧美一级在线播放| 亚洲成人1区| 国产伦精品一区二区三区视频孕妇| 亚洲毛片免费看| 国产免费一区二区三区四在线播放| 最新国产乱人伦偷精品免费网站| 日本熟妇人妻中出| 懂色av一区二区三区蜜臀| 久久精品无码一区| 亚洲黄色片在线观看| 永久免费无码av网站在线观看| 欧美三日本三级三级在线播放| 亚洲精华国产精华精华液网站| 亚洲欧美日韩国产中文专区| 91精选在线| 日本中文字幕久久看| 亚洲国产欧美国产第一区| 欧洲精品国产| 黄色精品网站| 亚洲欧美视频二区| 91香蕉视频污在线| 暗呦丨小u女国产精品| 日本高清不卡aⅴ免费网站| 亚洲av无码一区二区三区dv| 中文一区二区视频| 妞干网免费在线视频| 亚洲在线一区二区| 日韩成人影院| 欧美视频在线播放一区| 婷婷在线观看视频| 国产免费观看久久| www.99re7.com| 欧美嫩在线观看| 韩日在线视频| 性色av一区二区咪爱| 激情综合婷婷| 亚洲一区二区三区欧美| 欧美亚洲免费| www.17c.com喷水少妇| 一区视频在线播放| 国产精品尤物视频| 日韩电影免费在线观看中文字幕| 99热国产在线| 国产区精品视频| 成人av国产| 成人精品视频一区二区| 99re这里只有精品视频首页| 欧美极品aaaaabbbbb| 欧美一区午夜精品| 日本成人网址| 国产日韩欧美在线观看| 欧美视频免费| 亚洲欧美日韩一级| 国产午夜亚洲精品午夜鲁丝片| 久久久久久久久久免费视频| 精品成人一区二区三区| 四虎影院观看视频在线观看| 91精品久久久久久久久久入口| 日韩成人a**站| www.色就是色| 国产精品久久久久久久浪潮网站| 五月婷婷激情视频| 亚洲人成电影网| 免费福利视频一区二区三区| 欧美日韩一区在线播放| 老司机午夜免费精品视频| 欧洲av一区二区三区| 欧美性高跟鞋xxxxhd| 青青草手机在线| 人妖精品videosex性欧美| 九一国产精品| 国产一二三四在线视频| 国产精品白丝在线| 亚洲熟妇无码久久精品| 色小说视频一区| 亚洲一区二区av| 日本中文字幕一级片| 成人avav影音| 探花视频在线观看| 亚洲人成亚洲人成在线观看| 播放一区二区| 一本久久a久久精品vr综合| 国内欧美视频一区二区| 久久久夜色精品| 亚洲精品国产精品国自产在线| 性欧美xxx69hd高清| 欧美精品七区| 美女网站一区二区| 久久久久久久久久网站| 亚洲成成品网站| 欧美羞羞视频| 在线免费观看成人| 成人爱爱电影网址| 秋霞精品一区二区三区| 日日摸夜夜添一区| 日本精品在线观看| 欧美视频第一区| 国产精品丝袜久久久久久app| av免费观看在线| 97在线免费观看| 欧洲激情视频| 韩国三级在线播放| 疯狂做受xxxx高潮欧美日本| 久久天堂电影| 亚洲最大av网| 久久久天天操| 精品国产视频一区二区三区| 亚洲黄色www| 黄色精品视频网站| 亚洲人成无码网站久久99热国产| 久久精品一级爱片| 精品久久人妻av中文字幕| 全球成人中文在线| 图片小说视频色综合| 国产精品无码在线| 91精品免费在线| videos性欧美另类高清| 特级西西444| 国产欧美日韩在线看| 亚洲av无码一区二区三区dv| 国产精品丝袜白浆摸在线 | 国产精品羞羞答答在线|