<p>&quot;Vue3 中使用 &quot;<script setup>&quot; 实现弹窗重新调用 onMounted 钩子函数&quot;\n\n在 Vue 3 中,使用 &quot;<script setup>&quot; 可以更简洁地编写组件,并且可以让组件的选项在一个单独的区块中定义。要在弹窗提交或关闭后重新调用弹窗内的 &quot;onMounted&quot; 钩子函数,可以使用 &quot;ref&quot; 来创建一个响应式的变量来控制弹窗的开关状态,并使用 &quot;watch&quot; 来监听这个变量的变化。\n\n以下是一个示例代码:\n\n<code>vue\n&lt;template&gt;\n  &lt;div&gt;\n    &lt;button @click=&quot;openDialog&quot;&gt;打开弹窗&lt;/button&gt;\n    &lt;dialog :open=&quot;isOpen&quot; @close=&quot;closeDialog&quot;&gt;\n      &lt;h2&gt;弹窗内容&lt;/h2&gt;\n    &lt;/dialog&gt;\n  &lt;/div&gt;\n&lt;/template&gt;\n\n&lt;script setup&gt;\nimport { ref, onMounted, watch } from 'vue';\n\nconst isOpen = ref(false);\n\nonMounted(() =&gt; {\n  console.log('弹窗已打开');\n});\n\nwatch(isOpen, (newValue) =&gt; {\n  if (newValue) {\n    console.log('弹窗已提交或关闭,重新调用 onMounted');\n    // 调用弹窗内的 onMounted 逻辑\n  }\n});\n\nconst openDialog = () =&gt; {\n  isOpen.value = true;\n};\n\nconst closeDialog = () =&gt; {\n  isOpen.value = false;\n};\n&lt;/script&gt;\n</code>\n\n在上面的示例中,我们使用 &quot;ref&quot; 创建了一个名为 &quot;isOpen&quot; 的响应式变量来表示弹窗的开关状态。在 &quot;onMounted&quot; 钩子函数中,我们输出了一个日志,表示弹窗已打开。然后,我们使用 &quot;watch&quot; 来监听 &quot;isOpen&quot; 的变化,并在变化时进行相应的操作。当 &quot;isOpen&quot; 的值为 &quot;true&quot; 时,表示弹窗已提交或关闭,我们可以在 &quot;watch&quot; 的回调函数中重新调用弹窗内的 &quot;onMounted&quot; 逻辑。\n\n当点击打开弹窗按钮时,我们调用 &quot;openDialog&quot; 方法,将 &quot;isOpen&quot; 的值设为 &quot;true&quot;,弹窗将会打开。当点击弹窗的关闭按钮时,我们调用 &quot;closeDialog&quot; 方法,将 &quot;isOpen&quot; 的值设为 &quot;false&quot;,弹窗将会关闭。同时,&quot;watch&quot; 监听到 &quot;isOpen&quot; 的变化,会触发回调函数,我们可以在回调函数中重新调用弹窗内的 &quot;onMounted&quot; 逻辑。\n\n请注意,在上述示例中,我们只是在 &quot;watch&quot; 的回调函数中输出了一个日志,表示重新调用了 &quot;onMounted&quot; 逻辑。实际上,你需要根据你的具体需求来编写相应的逻辑代码。</p>
Vue3 中使用 `<script setup>` 实现弹窗重新调用 onMounted 钩子函数

原文地址: https://www.cveoy.top/t/topic/pwyv 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录