自定义指令实现(通过自定义指令实现对操作dom)

<div class="ml-5 select-wrap">
<Button
class="select-button"
type="primary"
icon="md-arrow-dropdown"
v-click-outside="handdleHideOption"
@click="showOption = !showOption"
>已有模板</Button>
<transition name="vertical-toggle">
<ul v-show="showOption" class="select-option">
<li class="select-item" v-for="item in templateList" :key="item.id">
<span>{{ item.name }}</span>
<div
class="select-remove"
@click.stop.prevent="handleRemoveTemplate(item.id)"
>
<Icon type="md-close" />
</div>
</li>
</ul>
</transition>
</div>
directives: {
'click-outside': {
bind: function (el, binding, vnode) {
el.clickOutsideEvent = function (event) {
if (!(el === event.target || el.contains(event.target))) {
vnode.context[binding.expression](event);
}
};
document.body.addEventListener('click', el.clickOutsideEvent);
},
unbind: function (el) {
document.body.removeEventListener('click', el.clickOutsideEvent);
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)