一、在src目录下创建一个directive文件夹
- test.ts文件存放创建的自定义指令,index.ts用于接收所有指令进行统一处理
二、编写自定义指令
// test.ts文件
export default {// 写个自定义指令mounted(el: any, binding: any) {console.log(el, binding, "@@"); //el为绑定指令的dom,binging可以获取到指令后面绑定的数据const { value } = binding;console.log(value); el.focus(); //对绑定指令的dom进行聚焦操作},
};
三、引入到index.ts
vue对插件的安装可以分为两种方式
方式一:直接使用函数,在main.js中调用
//index.ts文件
import test from "./test";
export default function (app: any) {app.directive("test", test);
}
方式二:使用对象,则必须给对象一个install属性
import test from "./test";
export default {install: function (app: any) {app.directive("test", test);},
};
四、引入main.ts进行注册
//main.ts文件
import directive from "./directive";
app.use(directive); //使用此方法会执行指令的函数或对象的install方法
五、指令使用
// 直接使用v-test可以获取到dom进行focus聚焦操作<input type="text" v-test />
//在指令后面绑定值可以在指令的binding.value中获取<input type="text" v-test="'测试数据'" />
六、效果展示
[外链图片转存中…(img-ydppr7Hc-1719562622682)]