Vue自定义指令(二)

简介: Vue自定义指令(二)

一、在 main.js 文件中创建自定义指令,并绑定到 app 实例上。

// ......
const app = createApp(App);
 
// 全局自定义指令【完整写法】
app.directive("big", {
  // 绑定的元素挂载时执行
  mounted: (el, binding) => {
    console.log(el); // 绑定指令的 DOM 元素
    console.log(binding); // 绑定指令的对象
    el.innerText = binding.value * 10;
  },
  // 绑定的值更新时执行
  updated: (el, binding) => {
    console.log(el); // 绑定指令的 DOM 元素
    console.log(binding); // 绑定指令的对象
    el.innerText = binding.value * 10;
  },
});
 
// 全局自定义指令【简写】
// app.directive("big", (el, binding) => {
//   console.log(el); // 绑定指令的 DOM 元素
//   console.log(binding); // 绑定指令的对象
//   el.innerText = binding.value * 10;
// });
 
// ......
app.mount("#app");

二、在需要的页面中,直接使用即可。

<template>
  <p>当前的num值是:<span v-text="num"></span></p>
  <p>放大10倍的num值是:<span v-big="num"></span></p>
  <button @click="num++">点击num+1</button>
</template>
 
<script setup>
import { ref } from 'vue'
let num = ref(1);
</script>

效果:

自定义指令【生命周期】:

const 指令名 = {
  // 绑定的元素创建时执行
  created(el, binding) { },
  // 绑定的元素挂载前执行
  beforeMount(el, binding, vnode) { },
  // 绑定的元素挂载后执行【常用于修改 DOM 元素】
  mounted(el, binding, vnode) { },
  // 绑定的数据更新前执行
  beforeUpdate(el, binding, vnode, prevVnode) { },
  // 绑定的数据更新后执行【常用于修改绑定的数据】
  updated(el, binding, vnode, prevVnode) { },
  // 绑定的元素卸载前执行
  beforeUnmount(el, binding, vnode) { },
  // 绑定的元素卸载后执行
  unmounted(el, binding, vnode) { }
}

 

自定义指令【参数详情】:

   el: 绑定的 DOM 元素

   binding: 绑定的对象,包含以下属性。

   value: 当前值(新值)。

   oldValue: 修改前的值(旧值)。

   arg: 传递的参数。例如 v-big:foo 中的参数是 foo 。

   modifers: 修饰符对象。例如 v-big.bar 中的修饰符是 { bar: true } 。

   

   instance: 组件实例对象

   dir: 指令对象。

   vnode: 绑定的底层虚拟 DOM (新的)。

   prevNode: 修改前的底层虚拟 DOM (旧的)。

 


相关文章
|
4天前
|
缓存 监控 JavaScript
探讨优化Vue应用性能和加载速度的策略
【5月更文挑战第17天】本文探讨了优化Vue应用性能和加载速度的策略:1) 精简代码和组件拆分以减少冗余;2) 使用计算属性和侦听器、懒加载、预加载和预获取优化路由;3) 数据懒加载和防抖节流处理高频事件;4) 图片压缩和选择合适格式,使用CDN加速资源加载;5) 利用浏览器缓存和组件缓存提高效率;6) 使用Vue Devtools和性能分析工具监控及调试。通过这些方法,可提升用户在复杂应用中的体验。
16 0
|
5天前
|
JavaScript 前端开发
vue(1),小白看完都会了
vue(1),小白看完都会了
|
4天前
|
JavaScript 开发工具 git
Vue 入门系列:.env 环境变量
Vue 入门系列:.env 环境变量
10 1
|
5天前
|
JavaScript 前端开发 定位技术
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
|
5天前
|
JavaScript
Vue中避免滥用this去读取data中数据
Vue中避免滥用this去读取data中数据
|
5天前
|
JavaScript
vue中使用pinia及持久化
vue中使用pinia及持久化
8 0
|
5天前
|
JavaScript 前端开发 UED
Vue class和style绑定:动态美化你的组件
Vue class和style绑定:动态美化你的组件
|
5天前
|
JavaScript 前端开发 API
Vue 监听器:让你的应用实时响应变化
Vue 监听器:让你的应用实时响应变化
|
5天前
|
JavaScript
vue封装svg
vue封装svg
10 0
|
5天前
|
JavaScript
vue封装面包屑组件
vue封装面包屑组件
8 0