美文网首页
vue自定义指令封装

vue自定义指令封装

作者: 一颗得道的仙丹 | 来源:发表于2024-03-06 14:36 被阅读0次

创建一个directives文件夹,在该文件夹下创建一个auth文件夹,然后在此文件夹下面创建一个index.ts文件

import type { Directive, DirectiveBinding } from "vue";

export const auth: Directive = {
  // 当指令挂载时调用
  mounted(el: HTMLElement, binding: DirectiveBinding) {
    // 获取指令的值
    const { value } = binding;
    console.log(value);
    // 获取本地存储的权限
    const userPermissions = localStorage.getItem("localAuth")
      ? localStorage
          .getItem("localAuth")
          .split(",")
          .map(perm => perm.trim())
      : [];
    // 如果指令有值,则判断本地存储的权限是否包含指令的值,如果不包含则移除该元素
    if (value) {
      !userPermissions.includes(value) && el.parentNode?.removeChild(el);
    } else {
      // 如果指令没有值,则抛出错误
      throw new Error(
        "[Directive: auth]: need auths! Like v-auth=\'pm.work_garbage:workDeleteAction'\""
      );
    }
  }
};

然后在directives此文件夹下面新增index.tx,该文件作用是当有多个自定义指令时无需重复注册指令

export * from "./auth";

最后在main.ts中

// 创建一个应用实例
const app = createApp(App);
// 自定义指令
import * as directives from "@/directives";
Object.keys(directives).forEach(key => {
  app.directive(key, (directives as { [key: string]: Directive })[key]);
});

ok结束了

相关文章

  • 封装移动端 vue 拖拽指令

    封装移动端 vue 拖拽指令 通过vue自定义指令,将拖拽行为封装为指令 使用transform做移动效果,需要注...

  • VUE进阶

    封装自定义vue指令 1. 封装输入框自动聚焦指令 在utils工具包中创建directives.js文件复制自动...

  • Vue快速入门(三:自定义指令)《快乐Vue》

    自定义指令 除了内置指令外,Vue.js 也提供了方法让我们可以注册自定义指令,以便封装对 DOM元素的重的处理行...

  • vue 局部指令和全局指令

    vue 自定义指令常用于 DOM 操作 局部指令 1. 简单使用 在组件中 2. 封装 新建 src/utils/...

  • season2-全局API

    第1节:Vue.directive 自定义指令 Vue.directive自定义指令 自定义的指令:changec...

  • Vue div节点滚动事件-加载更多

    使用Vue.directive注册全局指令 绑定事件 对于Vue自定义指令不明白的同学请移步: Vue自定义指令 ...

  • vue.js自定义指令

    除了使用默认的vue核心指令,如v-model, v-bind等,我们还可以自定义指令,封装常用的功能。 如:实现...

  • VUE-2:自定义指令、事件

    directive自定义指令 我们还可以通过`Vue`提供的directive方法来自定义指令 注册指令 `vue...

  • vue入门6---vue基本指令、自定义指令、插件

    一、vue常用指令概览 二、vue自定义指令 注册全局指令Vue.directive('my-directive'...

  • vue自定义指令初探

    vue自定义指令初探 一、什么是自定义指令 自定义指令是用来操作DOM的。尽管Vue推崇数据驱动视图的理念,但并非...

网友评论

      本文标题:vue自定义指令封装

      本文链接:https://www.haomeiwen.com/subject/thpjzdtx.html