
模态框(弹出层对话框,Modal Popup)在大多数现代应用程序中非常常见。它们主要用于呈现简洁的信息,非常适合显示广告和促销内容。模态框提供了一种快速传达信息的方式,并提供了用户友好的关闭选项。
在本文中,我们将使用Vuejs构建一个弹出模态框。该模态框将包括一个取消或关闭按钮,以方便用户在完成任务后关闭它。此外,我们还将实现一个功能,允许用户在模态框区域外点击以关闭它。
- "popup" @click.self="closeModal">
- "popup-content">
- "popup-header">
-
"popup-title">{{ message }}
-
-
-
- "popup-content-text">
- This is a simple modal popup in Vue.js
-
-
-
-
Script Section
在这个部分,我们从Vue中导入所需的功能。
ref 用于创建一个包含在模态框中显示的响应式变量消息。
emit用于定义一个名为“close”的事件,该事件可被触发以关闭模态框。
closeModal是一个函数,当调用时会触发“close”事件,从而有效地关闭模态框。
Template Section
- "popup" @click.self="closeModal">
- "popup-content">
- "popup-header">
-
"popup-title">{{ message }}
-
-
-
- "popup-content-text">
- This is a simple modal popup in Vue.js
-
-
-
-
本段代码义了模板中模态框的结构。
具有“popup”类的最外层div用作模态框的背景。
@click.self="closeModal"事件监听器附加到背景上,允许在其内容之外点击时关闭模态框。
内容包括一个标题(popup-title)和一个关闭按钮(popup-close-button)。
在标题下方,有一个文章部分,其中包含了模态框的主要内容。
-
-
{{ msg }}
-
-
"body"> -
if="isOpened" @close="isOpened = !isOpened" /> -
-
数据和状态管理:
代码使用Vue的ref函数创建了两个响应式变量:
- msg: 初始设置为“Hello World!”的文本消息。
- isOpened: 这是一个布尔变量,初始值为false,表示弹出窗口是否打开或关闭。
按钮点击事件
模板中有一个带有点击事件监听器(@click)的
导入弹出框组件
代码导入了一个弹出组件(Popup.vue)。
在模板中,使用v-if条件渲染弹出窗口组件。只有当isOpened变量为true时(v-if="isOpened"),弹出窗口才会显示,表示弹出窗口应该是打开的。
组件之间的通信:
当需要关闭弹出组件时,Popup组件会触发一个关闭事件@close。父组件使用@close事件监听器来监听此关闭事件。
当Popup组件发出事件时,它切换isOpened变量,从而关闭弹出窗口。
您可以在CodeSandbox上使用本文中设计的代码进行在线体验。
https://codesandbox.io/s/suspicious-kepler-993dmh?file=%2Fsrc%2Fviews%2FHome.vue%3A0-420
由于文章内容篇幅有限,今天的内容就分享到这里,文章结尾,我想提醒您,文章的创作不易,如果您喜欢我的分享,请别忘了点赞和转发,让更多有需要的人看到。同时,如果您想获取更多前端技术的知识,欢迎关注我,您的支持将是我分享最大的动力。我会持续输出更多内容,敬请期待。