vue-extend和vue-component注冊一個全局組件方式
extend()是一個全局構(gòu)造器,生成的是一個還沒掛載到頁面元素上的組件實例。
在全局掛載插件的形式全局注冊,就需要用到vue.use()方法,官方文檔:

所以插件必須是一個對象,并且提供install方法,注冊的時候自動調(diào)用該方法。
所以組件的寫作步驟就清晰了一些了,實踐出真知,現(xiàn)在就來練習一下寫一個簡約版的全局alert彈框
1.在components文件夾下新建alert文件夾
里面首先新建一個alert.vue文件
<!-- alert -->
<template>
<div class="alert" v-show="showAlert">
<p class="msg">{{ msg }}</p>
</div>
</template>
<script>
export default {
props: {
msg: {
type: String,
default: ''
},
showAlert: {
type: Boolean,
default: false
}
},
data() {
return {};
},
//方法集合
methods: {}
};
</script>
<style lang='scss' scoped>
//@import url(); 引入公共css類
.alert {
position: fixed;
left: 50%;
transform: translateX(-50%);
.msg {
text-align: center;
font-size: 20px;
padding: 5px 10px;
}
}
</style>2.然后在alert文件下再新建一個alert.js文件
寫擴展插件的js
import Alert from "./alert.vue";
const ALERT = {
install(Vue) {
Vue.component('alert', Alert); // 一定先注冊
Vue.prototype.$alert = (text) => {
let VueAlert = Vue.extend({
data() {
return {
msg: '',
showAlert: false
}
},
render(h) {
let props = {
msg: this.msg,
showAlert: this.showAlert,
}
return h('alert', {
props
})
}
});
let newAlert = new VueAlert();
let vm = newAlert.$mount();
let el = vm.$el;
document.body.appendChild(el); // 添加到頁面中
vm.showAlert = true;
vm.msg = text;
}
}
}
export default ALERT;3.在main.js中引入
、、、、 import diyAlert from '@/components/alert/alert'; // extentd寫alert 、、、 Vue.use(diyAlert);
4.這樣就可以在全局調(diào)用了
<!-- extend寫message -->
<template>
<div class="extentd">
<el-button type="primary" @click="alert">alert</el-button>
</div>
</template>
<script>
export default {
data() {
return {};
},
//方法集合
methods: {
alert() {
this.$alert('hahahah');
}
}
};
</script>
<style lang='scss' scoped>
//@import url(); 引入公共css類
</style>
剩下的就是在此基礎(chǔ)上進行功能性擴展了,比如關(guān)閉,動效等,就簡單了。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
前端vue+elementUI如何實現(xiàn)記住密碼功能
這篇文章主要給大家介紹了關(guān)于vue+elementUI如何實現(xiàn)記住密碼功能的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-09-09
vue項目頁面的打印和下載PDF加loading效果的實現(xiàn)(加水印)
這篇文章主要介紹了vue項目頁面的打印和下載PDF加loading效果的實現(xiàn)(加水印),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12
Element的穿梭框數(shù)據(jù)量大時點擊全選卡頓的解決方案
本文主要介紹了Element的穿梭框數(shù)據(jù)量大時點擊全選卡頓的解決方案,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10
elementui[el-table]toggleRowSelection默認多選事件無法選中問題
這篇文章主要介紹了elementui[el-table]toggleRowSelection默認多選事件無法選中問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11
Vue2/3?登錄后用戶無操作半小時后自動清除登錄信息退出登錄下線(示例代碼)
這篇文章主要介紹了Vue2/3?登錄后用戶無操作半小時后自動清除登錄信息退出登錄下線,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2024-07-07
Vue CLI3基礎(chǔ)學習之pages構(gòu)建多頁應(yīng)用
這篇文章主要給大家介紹了關(guān)于Vue CLI3基礎(chǔ)學習之pages構(gòu)建多頁應(yīng)用的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Vue CLI3具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-06-06
vue中手動封裝iconfont組件解析(三種引用方式的封裝和使用)
這篇文章主要介紹了vue中手動封裝iconfont組件(三種引用方式的封裝和使用),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue3中實現(xiàn)拖拽和縮放自定義看板 vue-grid-layout的方法
這篇文章主要介紹了Vue3中實現(xiàn)拖拽和縮放自定義看板 vue-grid-layout的方法,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03

