局部自定义命令引入问题!
来源:1-4 开发实现 Vue 中的自定义指令(2)
好帮手慕斯林
2021-03-24 12:14:13
相关代码:
const directives = {
pos: {
mounted(el, binding) {
el.style[binding.arg] = (binding.value + 'px');
}
}
},
const app = Vue.createApp({
directives,
data(){
return{
distance: 110
}
},
template: `
<div>
<div v-pos:right="distance" class="header">
<input />
</div>
</div>
`
});
问题描述:
1,代码中这样引入局部自定义有报错,感觉是引入的时候有问题,但不知道哪里错。
2,老师在讲实例中引入局部自定义指令的时候忒乱,所以产生两个问题:
①局部自定义const directives的时候,我看全局app.directive后面并没有加s,这个是说局部自定义指令const directives 这个directives是可以随意命名的?
②关于在 Vue.createApp实例中引入局部自定义指令的时候,在【开发实现 Vue 中的自定义指令(1)】5:45分的时候可以这样directives:directives,引入,然后在【开发实现 Vue 中的自定义指令(2)】9:26分的时候又说directives:{focust}这样这引入,所以我都不知啥问题了,希望明确点,谢谢!
1回答
好帮手慕星星
2021-03-24
同学你好,问题解答如下:
1、一段代码结束后应该是分号结尾(或者不写标点符号),不是逗号,否则会造成语法问题。修改:


2、全局的指令directive不加s

局部指令有一个directives的选项

所以课程中为了方便,变量名称和选项名称一致了,写全是这样的

如果想修改变量名称是可以的,选项值对应着就好。
3、这两种方式都可以,第一种是在外面定义了指令赋值给变量,然后在directives上挂载上,第二种是直接在directives选项上写指令 。哪种方便使用哪种即可。
也可以看看官方文档的解释:
https://vue3js.cn/docs/zh/guide/custom-directive.html#%E7%AE%80%E4%BB%8B
祝学习愉快!
相似问题