当前位置: 首页 > Web前端 > vue.js

尝试在Vue组合API中返回JSX

时间:2023-04-01 00:16:21 vue.js

对应https://blog.bitsrc.io/new-re...提取逻辑到一个组合API:/***将逻辑统一到一个文件中,方便逻辑的复用*未确认是否可以带来性能问题,并且对调试工具的友好性不如components*/import{computed,ref}from'vue';import{NDialog,NLink}from'';/**用法,用作HooksAPI*constp=warnDeletePublishment()*/exportconstwarnDeletePublishment=()=>{constvisible=ref(false);constshowDialog=()=>{visible.value=true;};constdom=computed(()=>{return({visible.value=v;}}v-slots={{页脚:()=>{return((visible.value=false)}>close

);},}}>
警告内容
);});return{/**usage*p.show()*/show:showDialog,/**usage**/dom,};};用法很短,封装了state和UI:;functionhandleRemove(publication:PackagePublishment){warnDeletePlugin.show();}渲染动态UI需要组件包:/***这种写法可能会带来额外的性能问题?**配合插件写法使用,将`ComputedRef`渲染到模板写法*/import{ComputedRef,defineComponent,PropType,VNode}from'vue';import{onMounted,ref,watch}from'vue';constDynamicDom=defineComponent({props:{dom:{required:true,type:ObjectasPropType>,},},setup(props){return()=>props.dom.value;},});导出默认D动态域;使用exposeVue还支持在expose的帮助下从外部直接操作Component方法:https://www.vuemastery.com/bl...https://vuejs.org/api/composite...

最新推荐
猜你喜欢