//本地仓库外部组件 // 存储组件列表 let components = []; // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册 const install = function (Vue) { if (install.installed) return; // 遍历注册全局组件 let contexts = require.context('.', true, /[\\\/]Ai([^\\\/]+)\.vue$/); Vue.directive('throttle', { bind: function (el, obj) { let timerId = null let flag = true el.addEventListener('input', function () { if (!flag) return flag = false timerId && clearTimeout(timerId) timerId = setTimeout(function () { flag = true obj.value() }, 800) }) } }) if (contexts) { contexts.keys().map((e) => { components.push(contexts(e).default); Vue.component(contexts(e).default.name, contexts(e).default); }); } }; // 判断是否是直接引入文件 if (typeof window !== 'undefined' && window.Vue) { install(window.Vue); } export default { // 导出的对象必须具有 install,才能被 Vue.use() 方法安装 install, // 以下组件列表 ...components };