前言
最近在试着用vue3 + typeScript重构我这个博客项目,重构的过程中突然发现不知道如何引入自定义指令,上网查询了一波解决放方案后在此作一总结。
过程
- 环境 vue-cli 4.5.3 + typeScript
- 在src文件夹下添加directives文件夹用于存储指令相关文件
- /directives下添加index.ts文件用于批量导出指令
//导入相关模块
import Time from '@/directives/modules/time'
export default (app: any) => {
app.directive(\"time\", {
bind: function (el: any, binding: any) {
el.innerHTML = Time.getFormatTime(binding.value);
el.__timeout__ = setInterval(function () {
el.innerHTML = Time.getFormatTime(binding.value);
}, 6000);
},
unbind: function (el: any) {
clearInterval(el.__timeout__);
delete el.__timeout__;
},
});
}
- 在/directives下添加modules文件夹用于存储相关模块
- 以我的自定义指令time为例,我创建了time.ts文件存储该指令相关代码
const Time = {
相关代码略
};
//导出
export default Time;
- 最后是修改src/main.ts这一个入口文件,将自定义指令导入项目,添加如下代码
//载入自定义指令
import directives from \"@/directives/index\"
directives(app)
app.mount('#app')
- 如此便成功将自定义指令导入自己的项目中了