ホームページ > 記事 > ウェブフロントエンド > vue3 で element-plus を使用してメッセージを呼び出す方法
Environment: vue3 typescript element-plus
エレメントの導入後、app.config.globalProperties にグローバル メソッド $message
が追加されたため、オプション API
mounted(){ (this as any).$message.success("this.$message"); }
props と context を渡します。context はこれをコンテキストとして置き換えますが、context には Emit、attrs、およびスロットのみがあります。これをセットアップで直接使用すると、問題が発生します。 : 公式ウェブサイト 注:
setup() 内では、これはアクティブなインスタンスへの参照にはなりません。setup() は他のコンポーネント オプションを解析する前に呼び出されるため、setup() 内での動作は異なります。他のオプションとはまったく異なります。 setup() で他のオプションの API と一緒に使用すると、混乱が発生する可能性があります。
したがって、getCurrentInstance メソッドを呼び出すことでインスタンスを取得できます。このメソッドは、element-plus global
//helloworld.vue import { getCurrentInstance, defineComponent,onMounted } from 'vue'; export default = defineComponent{ setup(omprops,content){ onMounted(()=>{ getCurrentInstance()?.appContext.config.globalProperties.$message.success("聪明"); }) }
//main.ts import { createApp } from 'vue' import App from './App.vue' import element from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' import {ElMessage} from 'element-plus' const app = createApp(App) app.use(element) //如果没有全局引用element,还需写下面一句 //app.config.globalProperties.$message = ElMessage; app.provide('$message', ElMessage) app.mount('#app')
//helloworld.vue import { inject, defineComponent,onMounted } from 'vue'; export default = defineComponent{ setup(omprops,content){ onMounted(()=>{ (inject('$message') as any).success("inject"); }) }
//helloworld.vue import { inject, defineComponent,onMounted } from 'vue'; import { ElMessage } from 'element-plus' export default = defineComponent{ setup(omprops,content){ onMounted(()=>{ ElMessage.success('按需引入'); }) }
vue ファイルで使用します
this.$message({ message: "提示信息", type: "success" })
js ファイルで使用します
ElementUI.Message({ message: '提示信息', type: 'warning' });
以上がvue3 で element-plus を使用してメッセージを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。