Vue script setup 怎么实现弹窗显示状态的轻量化控制

酷浩酱_1276

酷浩酱_1276

2026-10-23

510人浏览

原创

用 script setup 实现弹窗轻量化控制:通过 usemodal 组合函数封装单一 visible 状态,解构即用;子组件用 v-model:visible 接收,父组件免事件透传;多弹窗用独立 usemodal 或 reactive 管理;teleport 挂载至 body 且 v-show 控制显隐。

vue script setup 怎么实现弹窗显示状态的轻量化控制

用 script setup 实现弹窗显示状态的轻量化控制,核心是“少声明、少传递、少耦合”——不依赖全局状态、不硬编码多个 ref 变量,靠组合式逻辑和合理作用域把显隐控制收得干净。

用 useModal 组合函数封装单一状态

把弹窗开关逻辑抽成可复用的 hook,避免每个组件都写 const visible = ref(false):

  • 创建 useModal():内部只维护一个 ref,返回 visible、open、close 三个基础能力
  • 调用时直接解构,无需手动声明变量:
    const { visible, open, close } = useModal()
  • 支持传参初始化(比如默认打开或带延迟关闭),但不强制——保持轻量,按需扩展

父组件中直接绑定 v-model,省去事件透传

弹窗组件用 v-model:visible 接收并响应,父组件不用监听 @update:visible 再手动赋值:

vue-composition-api-best-practices
vue-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.2万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习