如何深入理解并应用Vue 3.0中的自定义指令(directives)进行复杂交互开发?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1339个文字,预计阅读时间需要6分钟。
在多种情况下,你都可以操作数据来修改视图,或反之。但若想避免直接操作原生DOM,此时可以使用自定义指令。例如,若想让页面文本框自动聚焦,可以编写如下指令:`v-focus`。
在大多数情况下,你都可以操作数据来修改视图,或者反之。但是还是避免不了偶尔要操作原生 DOM,这时候,你就能用到自定义指令。
举个例子,你想让页面的文本框自动聚焦,在没有学习自定义指令的时候,我们可能会这么做。
const app = Vue.createApp({ mounted(){ this.$refs.input.focus(); }, template: `<input type="text" ref="input" />`, });
在mounted钩子函数里,通过 $refs 获取需要聚焦的 DOM 元素,然后调用 focus 方法完成自动聚焦的功能。
基本使用
上面做法已经实现了我们需要的功能,但是假如说我们有多个组件都需要这个功能,那我们只能把这段代码复制过去,重新实现逻辑。我们下面看下如果使用自定义指令,应该怎么做。
本文共计1339个文字,预计阅读时间需要6分钟。
在多种情况下,你都可以操作数据来修改视图,或反之。但若想避免直接操作原生DOM,此时可以使用自定义指令。例如,若想让页面文本框自动聚焦,可以编写如下指令:`v-focus`。
在大多数情况下,你都可以操作数据来修改视图,或者反之。但是还是避免不了偶尔要操作原生 DOM,这时候,你就能用到自定义指令。
举个例子,你想让页面的文本框自动聚焦,在没有学习自定义指令的时候,我们可能会这么做。
const app = Vue.createApp({ mounted(){ this.$refs.input.focus(); }, template: `<input type="text" ref="input" />`, });
在mounted钩子函数里,通过 $refs 获取需要聚焦的 DOM 元素,然后调用 focus 方法完成自动聚焦的功能。
基本使用
上面做法已经实现了我们需要的功能,但是假如说我们有多个组件都需要这个功能,那我们只能把这段代码复制过去,重新实现逻辑。我们下面看下如果使用自定义指令,应该怎么做。

