基于Vue實(shí)現(xiàn)消息提示功能
1.首先要先定義消息提示的組件,在這個(gè)組件中需要實(shí)現(xiàn)自動(dòng)關(guān)閉的功能(看自己的愛好唄),并且設(shè)置自己喜歡的樣式,vue中還有可以自定義進(jìn)場(chǎng)和退場(chǎng)動(dòng)畫的樣式(就是那個(gè)v-enter-active和v-leave-active)。這里還可以通過(guò)definePorps在外部設(shè)置屬性值
<template> <div class="message" v-if="display"> <div class="content"> <div>Message組件實(shí)例</div> <div class="close" @click="close">X</div> </div> </div> </template> <script setup> import { ref, onMounted } from 'vue'; let display = ref(false); function close() { display.value = false } onMounted(() => { display.value = true; setTimeout(() => { display.value = false; }, 5000) }) </script> <style> .content { display: flex; position: relative; transform: translateY(-50%); top: 50%; } .message { border: 3px skyblue solid; border-radius: 20px; width: fit-content; height: 30px; text-align: center; padding: 10px; position: relative; transform: translateX(-50%); left: 50%; } .close { margin-left: 20px; font-weight: 700; padding: 2px; border: 1px solid red; background-color: red; } </style>
2. 通過(guò)h函數(shù)和render函數(shù)實(shí)現(xiàn)組件的掛載
首先需要通過(guò)h函數(shù)創(chuàng)建組件的虛擬節(jié)點(diǎn),h函數(shù)有多個(gè)重寫方法(h函數(shù)的具體用法),這里用的直接傳入一個(gè)節(jié)點(diǎn)(也就是自定義的組件),h函數(shù)會(huì)有一個(gè)VNode的返回值,通過(guò)render渲染函數(shù)進(jìn)行渲染,然后將div掛載到body上,最后將這個(gè)函數(shù)導(dǎo)出
import Message from './Message.vue' import { h, render } from 'vue' export function createMessage() { const div = document.createElement("div"); render(h(Message), div); document.body.appendChild(div) }
3.使用
這里實(shí)現(xiàn)的是最簡(jiǎn)單的消息提示,正常來(lái)說(shuō)應(yīng)該用props來(lái)傳遞屬性(比如傳遞的消息內(nèi)容等等)。
import { createMessage } from './message/Message.js' createMessage();
例如說(shuō)這樣
<template> <div class="message" v-if="display"> <div class="content"> <div>{{message}}</div> <div class="close" @click="close">X</div> </div> </div> </template> <script setup> import { ref, onMounted } from 'vue'; const { message } = defineProps(["message"]) </script> import Message from './Message.vue' import { h, render } from 'vue' export function createMessage({ Msg = "消息提示" }) { const div = document.createElement("div"); render(h(Message, { message: Msg }), div); document.body.appendChild(div) } <script setup> import { createMessage } from './message/Message.js' createMessage({ Msg: "Hello World" }); </script> <template> </template>
這樣就可以實(shí)現(xiàn)一個(gè)簡(jiǎn)單的消息傳遞,但是功能非常的不全(所以我為什么不用Element呢.......),可以當(dāng)成事件觸發(fā)后的提示功能
到此這篇關(guān)于基于Vue實(shí)現(xiàn)消息提示功能的文章就介紹到這了,更多相關(guān)Vue消息提示內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
集成vue到j(luò)query/bootstrap項(xiàng)目的方法
下面小編就為大家分享一篇集成vue到j(luò)query/bootstrap項(xiàng)目的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02vue+elementui實(shí)現(xiàn)選項(xiàng)卡功能
這篇文章主要為大家詳細(xì)介紹了vue+elementui實(shí)現(xiàn)選項(xiàng)卡功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03淺談Vue-cli單文件組件引入less,sass,css樣式的不同方法
下面小編就為大家分享一篇淺談Vue-cli單文件組件引入less,sass,css樣式的不同方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Vue2使用cube-ui?實(shí)現(xiàn)搜索過(guò)濾、高亮功能
cube-ui?是基于?Vue.js?實(shí)現(xiàn)的精致移動(dòng)端組件庫(kù),由于很長(zhǎng)一段時(shí)間沒有學(xué)習(xí)cube-ui?的功能實(shí)現(xiàn)示例代碼了,今天通過(guò)本文給大家介紹下Vue2使用cube-ui?實(shí)現(xiàn)搜索過(guò)濾、高亮功能,感興趣的朋友跟隨小編一起看看吧2023-01-01vue使用$emit時(shí),父組件無(wú)法監(jiān)聽到子組件的事件實(shí)例
下面小編就為大家分享一篇vue使用$emit時(shí),父組件無(wú)法監(jiān)聽到子組件的事件實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02element中Steps步驟條和Tabs標(biāo)簽頁(yè)關(guān)聯(lián)的解決
這篇文章主要介紹了element中Steps步驟條和Tabs標(biāo)簽頁(yè)關(guān)聯(lián)的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12vuejs element table 表格添加行,修改,單獨(dú)刪除行,批量刪除行操作
這篇文章主要介紹了vuejs element table 表格添加行,修改,單獨(dú)刪除行,批量刪除行操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07