Component 组件的函数调用
2024-09-28
JavaScript
1 | <van-popup v-model:show="visiblePopup"> |
像上面这样的模板式弹框代码,在项目中是最常见不过的,以 Component
方式调用弹框,如果代码组织不好,会使得 template
变得异常凌乱,更重要的是其中充斥着诸如 visiblePopup
、someProps
等这样的中间变量,显得尤为不优雅。而像下面这样以函数方式调用则简洁得多。
1 | const handleOpenComp = () => { |
很多 UI 库均提供了弹框的函数调用,比如 Vant UI 的 Dialog
,Arco Design 的 Modal
,如果没有提供,则需手动改造。以 Vant UI 的 Popup
为例,将其由 Component
组件转换为函数组件。
1 | import { createVNode, render, h, nextTick } from 'vue' |
需要注意的是,组件一但使用函数调用,组件参数以函数参数传递,将不具有 props 响应式特点,在一些异步参数时,需要等待异步数据请求完成,再调用弹框。一些根据数据显示的弹框,还是使用 Component 调用更方便。