打开山东城市建设职业学院网站,江西科技学校网站建设,专门做评测的网站有哪些,互联网营销师证本文将介绍如何在 Vue 3 中实现一个动态 Toast 组件实例。我们将创建一个简单的 Toast 组件#xff0c;并使用一个动态创建实例的脚本来显示 Toast 消息。在 Vue 3 中创建动态组件实例有许多好处#xff0c;这些好处主要体现在灵活性、性能、可维护性和用户体验等方面。 创建… 本文将介绍如何在 Vue 3 中实现一个动态 Toast 组件实例。我们将创建一个简单的 Toast 组件并使用一个动态创建实例的脚本来显示 Toast 消息。在 Vue 3 中创建动态组件实例有许多好处这些好处主要体现在灵活性、性能、可维护性和用户体验等方面。 创建 Toast 组件
首先我们需要创建一个名为 Toast.vue 的组件。这个组件将接收两个 propsmessage 和 showToast并根据 showToast 的值显示不同的图片。
!-- Toast.vue --
templatediv classcustom-toast flex-col justify-c align-cimg v-ifshowToast src../../../public/img/toast1.png alt /img v-else src../../../public/img/toast2.png alt /div classmessage{{ props.message }}/div/div
/templatescript
export default {name: Toast
}
/scriptscript setup
import { onMounted } from vueconst props defineProps({message: {type: String,default: 说话时间太短},showToast: {type: Boolean,default: () false}
})onMounted(() {})
/scriptstyle scoped langscss
.custom-toast {width: 420px;height: 452px;background: #01071e;border-radius: 32px;opacity: 0.9;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);z-index: 9;img {// width: 224px;// height: 117px;}.message {margin-top: 50px;font-weight: 500;font-size: 42px;color: #f8fbff;}
}
/style
动态创建 Toast 实例
接下来我们将创建一个名为 toast.js 的文件用于动态创建和显示 Toast 实例。这个脚本将导出一个 createToast 函数该函数接收三个参数message 和 showToast duration 。它会创建一个新的 Toast 实例并在页面上显示一段时间后移除。
// toast.js
import { createApp } from vue
import Toast from ./Toast.vuefunction createToast(message, showToast,duration 1000) {const toastInstance createApp(Toast, {message,showToast})const mountNode document.createElement(div)document.body.appendChild(mountNode)toastInstance.mount(mountNode)setTimeout(() {toastInstance.unmount(mountNode)document.body.removeChild(mountNode)}, duration )
}export default createToast
使用动态 Toast 组件
要使用我们刚刚创建的动态 Toast 组件只需要在需要显示 Toast 的地方调用 createToast 函数并传入适当的参数。
import createToast from ./toast.js// 显示 Toast 消息
createToast(这是一个 Toast 消息, true) 总结
通过上述步骤我们在 Vue 3 中成功实现了一个动态 Toast 组件实例。这个组件能够在运行时根据传入的参数显示不同的内容并在一段时间后自动消失。这种动态组件实例的创建方式使得我们可以在应用中灵活地显示临时的 UI 元素而无需将它们预先定义在模板中。
优点
解耦合动态创建组件实例使得组件的使用更加灵活不需要在模板中预先定义。减少 DOM 操作动态创建和销毁组件实例可以减少对 DOM 的直接操作提升性能。易于维护所有与 Toast 相关的逻辑集中在一个地方易于维护和修改。通过这种方式我们可以轻松地在 Vue 3 应用中实现动态的 UI 元素提升用户体验。