vue3 自定义指令 directive

1、官方说明:https://cn.vuejs.org/guide/reusability/custom-directives

除了 Vue 内置的一系列指令 (比如 v-modelv-show) 之外,Vue 还允许你注册自定义的指令 (Custom Directives)。

我们已经介绍了两种在 Vue 中重用代码的方式:组件组合式函数。组件是主要的构建模块,而组合式函数则侧重于有状态的逻辑。另一方面,自定义指令主要是为了重用涉及普通元素的底层 DOM 访问的逻辑。

2、案例说明:

新建文件vNameOfDirectiveTest.vue

代码:

复制代码
<script setup>
const vMyDirective = {
  beforeMount: (el) => {
    // 在元素上做些操作
    console.log(el);
    el.style.color = 'red'
    el.style.backgroundColor = 'yellow'
  }
}
</script>
<template>
  <h1 v-my-directive>This is a Heading</h1>
  <div v-color="'red'">This text will be red.</div>
  <input v-focus value="This is a input"></input>
</template>

说明

vMyDirective:局部指令。

v-color,v-focus:全局指令。

复制代码
const app = createApp(App);
// 注册自定义指令
const color = {
  mounted(el, binding) {
    el.style.color = binding.value;
  },
  // 如果需要在更新时也更新颜色,可以添加一个 `updated` 钩子
  // updated(el, binding) {
  //   el.style.color = binding.value;
  // }
};

app.directive("focus", {
  mounted(el) {
    el.focus();
  },
});

// 全局注册自定义指令
app.directive('color', color);

3、注意:

<div v-color="'red'">This text will be red.</div>

这里的v-color="'red'",red一定要有二个单引号引起来,否则不生效,实测生效。

相关推荐
用户120391129472614 小时前
从原生 JS 到 Vue3 Composition API:手把手教你用现代 Vue 写一个优雅的 Todos 任务清单
前端·vue.js·面试
VX:Fegn089514 小时前
计算机毕业设计|基于springboot + vue心理健康管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
哆啦A梦158814 小时前
商城后台管理系统 02,商品-页面添加-弹框添加
javascript·vue.js·elementui
小胖霞14 小时前
vite+ts+monorepo从0搭建vue3组件库(五):vite打包组件库
前端·vue.js·前端框架
Java陈序员14 小时前
一键部署!一款开源自托管的照片画廊神器!
vue.js·docker
AAA阿giao14 小时前
从“拼字符串”到“魔法响应”:一场数据驱动页面的奇幻进化之旅
前端·javascript·vue.js
小胖霞14 小时前
vite+ts+monorepo从0搭建vue3组件库(三):开发一个组件
vue.js·前端框架·前端工程化
JS_GGbond15 小时前
Vue3 组件入门:像搭乐高一样玩转前端!
前端·vue.js
小胖霞15 小时前
vite+ts+monorepo从0搭建vue3组件库(二):项目搭建
前端·vue.js·前端工程化
小胖霞15 小时前
vite+ts+monorepo从0搭建vue3组件库(四):button组件开发
vue.js·前端框架·前端工程化