Vue自定义指令——点击div区域之外触发,v-click-outside

js文件
import Vue from 'vue'
//自定义指令-点击div区域之外触发

// 提交验证
Vue.directive('clickOutside', {
    // 初始化指令
    bind(el, binding) {
        function clickHandler(e) {
            // 这里判断点击的元素是否是本身,是本身,则返回
            if (el.contains(e.target)) {
                return false;
            }
            // 判断指令中是否绑定了函数
            if (binding.expression) {
                // 如果绑定了函数 则调用那个函数,此处binding.value就是handleClose方法
                binding.value(e);
            }
        }
        // 给当前元素绑定个私有变量,方便在unbind中可以解除事件监听
        el.__vueClickOutside__ = clickHandler;
        document.addEventListener('click', clickHandler);
    },
    update() { },
    unbind(el) {
        // 解除事件监听
        document.removeEventListener('click', el.__vueClickOutside__);
        delete el.__vueClickOutside__;
    },
});
main.js
//自定义指令引入
import './directive/directive'
页面
 <div  v-click-outside="outsideClick">

页面来源:https://blog.csdn.net/weixin_43837268/article/details/88722598