vue3 + TS 自定义插件-全局message提示插件示例
import { App, Plugin } from 'vue';
interface MessageOptions {
content: string;
duration?: number;
}
const messagePlugin: Plugin = {
install(app: App) {
app.config.globalProperties.$message = (options: MessageOptions) => {
// 实现消息提示逻辑,例如创建一个div来展示消息
const duration = options.duration || 3000; // 默认3秒
const div = document.createElement('div');
div.textContent = options.content;
document.body.appendChild(div);
// 3秒后移除div
setTimeout(() => {
div.remove();
}, duration);
};
}
};
export default messagePlugin;
这个示例创建了一个简单的消息提示插件,插件提供了一个 $message
方法,允许全局访问。在 Vue 应用中使用时,只需要在 main.ts/js 中导入并使用这个插件:
import { createApp } from 'vue';
import App from './App.vue';
import messagePlugin from './plugins/message';
const app = createApp(App);
app.use(messagePlugin);
app.mount('#app');
之后,在组件中可以这样使用:
<template>
<button @click="showMessage">显示消息</button>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
export default defineComponent({
setup() {
const showMessage = () => {
this.$message({ content: '操作成功!', duration: 2000 });
};
return { showMessage };
}
});
</script>
点击按钮后,会在页面中显示一个持续2秒的消息提示。这个插件可以进一步完善,比如添加样式、支持多种类型的消息提示等。
评论已关闭