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 (旧的)。

 


目录
打赏
0
1
1
0
13
分享
相关文章
|
3月前
|
vue使用iconfont图标
vue使用iconfont图标
168 1
Vue Router 核心原理
Vue Router 是 Vue.js 的官方路由管理器,用于实现单页面应用(SPA)的路由功能。其核心原理包括路由配置、监听浏览器事件和组件渲染等。通过定义路径与组件的映射关系,Vue Router 将用户访问的路径与对应的组件关联,支持哈希和历史模式监听 URL 变化,确保页面导航时正确渲染组件。
ry-vue-flowable-xg:震撼来袭!这款基于 Vue 和 Flowable 的企业级工程项目管理项目,你绝不能错过
基于 Vue 和 Flowable 的企业级工程项目管理平台,免费开源且高度定制化。它覆盖投标管理、进度控制、财务核算等全流程需求,提供流程设计、部署、监控和任务管理等功能,适用于企业办公、生产制造、金融服务等多个场景,助力企业提升效率与竞争力。
96 12
Vue中的class和style绑定
在 Vue 中,class 和 style 绑定是基于数据驱动视图的强大功能。通过 class 绑定,可以动态更新元素的 class 属性,支持对象和数组语法,适用于普通元素和组件。style 绑定则允许以对象或数组形式动态设置内联样式,Vue 会根据数据变化自动更新 DOM。
Vue Router 简介
Vue Router 是 Vue.js 官方的路由管理库,用于构建单页面应用(SPA)。它将不同页面映射到对应组件,支持嵌套路由、路由参数和导航守卫等功能,简化复杂前端应用的开发。主要特性包括路由映射、嵌套路由、路由参数、导航守卫和路由懒加载,提升性能和开发效率。安装命令:`npm install vue-router`。
iframe嵌入页面实现免登录思路(以vue为例)
通过上述步骤,可以在Vue.js项目中通过 `iframe`实现不同应用间的免登录功能。利用Token传递和消息传递机制,可以确保安全、高效地在主应用和子应用间共享登录状态。这种方法在实际项目中具有广泛的应用前景,能够显著提升用户体验。
203 8
Vue 组件化开发:构建高质量应用的核心
本文深入探讨了 Vue.js 组件化开发的核心概念与最佳实践。
93 1
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。