最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue3實現自定義指令攔截點擊事件的示例代碼

 更新時間:2023年02月13日 10:26:44   作者:天渺工作室  
某些應用場景會給點擊事件添加權限,不存在權限就攔截點擊事件,有權限就繼續(xù)正常觸發(fā)點擊事件。這樣的效果是如何實現的呢,本文就來和大家詳細講講

案例使用Vue3舉例,如在Vue2中使用思路是一致的,語法稍有區(qū)別。

問題

某些應用場景會給點擊事件添加權限,不存在權限就 攔截 點擊事件(或觸發(fā)其他業(yè)務事件),有權限就繼續(xù)正常 觸發(fā) 點擊事件。如果用封裝組件的方法,在使用三方UI庫的情況下,封裝成本過大,并不劃算。

解決方案案例

邏輯

main.ts

// main.ts // 舉例案例 直接在初始化為全局自定義指令
import { createApp } from "vue";
import "./style.css";
import App from "./App.vue";
import router from "./router/router";
import * as echarts from 'echarts';
import ElementPlus from 'element-plus';
import 'element-plus/dist/index.css';

const app = createApp(App);
app.use(router);
app.use(ElementPlus)

// 邏輯封裝
const customClick = (binding: any) => {
    return () =>{
        if (true) { // 判斷條件
            // 正常觸發(fā)點擊事件
            binding.value();
        } else {
            // 已經成功攔截點擊事件
            console.log('已經成功攔截點擊事件');
        };
    };
};
// 全局自定義指令
app.directive('custom',{
    created(el, binding, vnode, prevVnode) {
        el.addEventListener('click', customClick(binding));
    },
    // 離開一定要銷毀卸載
    unmounted(el, binding, vnode) {
        el.removeEventListener('click', customClick);
    },
});

app.mount("#app");

頁面中的使用

<template>
<!--函數不帶括號-->
<button v-custom="onClick">test按鈕</button>
<el-button type="primary" v-custom="onClickTest1">Primary</el-button>

<!--函數帶括號 可傳值-->
<button v-custom="() => onClick()">test按鈕</button>
<el-button type="primary" v-custom="() => onClickTest1(233)">Primary</el-button>
</template>
<script lang="ts" setup >
const onClick = () => {
    console.log('_____函數不帶括號');
};

const onClickTest1 = (num: number) => {
    console.log('_____函數帶括號 可傳值');
};
</script>

邏輯封裝還存在優(yōu)化點,后續(xù)在持續(xù)優(yōu)化。

到此這篇關于Vue3實現自定義指令攔截點擊事件的示例代碼的文章就介紹到這了,更多相關Vue3自定義指令攔截點擊事件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 一文帶你搞懂V8垃圾回收系統(tǒng)

    一文帶你搞懂V8垃圾回收系統(tǒng)

    在V8中,JavaScript的內存空間分為棧(Stack)和堆(Heap)兩部分,垃圾回收的基本思路是:查找內存中的所有變量,看哪些已經不再需要,然后釋放這些變量所占用的內存,本文就給大家梳理一下V8垃圾回收系統(tǒng),需要的朋友可以參考下
    2023-07-07
  • 如何處理?Vue3?中隱藏元素刷新閃爍問題

    如何處理?Vue3?中隱藏元素刷新閃爍問題

    本文主要探討了網頁刷新時,原本隱藏的元素會一閃而過的問題,以及嘗試過的解決方案并未奏效,通過實例代碼介紹了如何處理?Vue3?中隱藏元素刷新閃爍問題,感興趣的朋友跟隨小編一起看看吧
    2024-10-10
  • vue使用Google地圖的實現示例代碼

    vue使用Google地圖的實現示例代碼

    這篇文章主要介紹了vue使用Google地圖的實現示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-12-12
  • 使用vue-json-viewer實現JSON數據可視化詳解

    使用vue-json-viewer實現JSON數據可視化詳解

    vue-json-viewer?是一個用于在?vue.js?應用中展示?JSON?數據的插件,它提供了一種直觀和美觀的方式來可視化?JSON?數據,下面我們來看看如何使用它進行JSON數據可視化吧
    2025-01-01
  • preload對比prefetch的功能區(qū)別詳解

    preload對比prefetch的功能區(qū)別詳解

    這篇文章主要為大家介紹了preload對比prefetch的使用區(qū)別詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 一文詳解Vue.js生產環(huán)境文件及優(yōu)化策略

    一文詳解Vue.js生產環(huán)境文件及優(yōu)化策略

    隨著 Vue.js 在前端開發(fā)中的普及,如何高效地將 Vue 項目部署到生產環(huán)境成為了開發(fā)者關注的重點,本文將詳細解析 Vue.js 生產環(huán)境文件的使用方法、優(yōu)缺點以及優(yōu)化策略,需要的朋友可以參考下
    2024-12-12
  • 使用Vue-cli 3.0搭建Vue項目的方法

    使用Vue-cli 3.0搭建Vue項目的方法

    這篇文章主要介紹了使用Vue-cli 3.0搭建Vue項目的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • vue實現卡片翻轉輪播展示

    vue實現卡片翻轉輪播展示

    這篇文章主要為大家詳細介紹了vue實現卡片翻轉輪播展示,同時在翻轉時切換數據,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-01-01
  • Vue的computed計算屬性你了解嗎

    Vue的computed計算屬性你了解嗎

    這篇文章主要為大家詳細介紹了Vue的computed計算屬性,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • Vue異步組件使用詳解

    Vue異步組件使用詳解

    這篇文章主要為大家詳細介紹了Vue異步組件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04

最新評論

乐都县| 河曲县| 北碚区| 天等县| 澄迈县| 奉节县| 阜新市| 湾仔区| 抚松县| 海南省| 绍兴市| 普兰店市| 宜阳县| 宁乡县| 忻州市| 墨脱县| 龙游县| 沿河| 安乡县| 霍林郭勒市| 乐业县| 商都县| 墨江| 芜湖县| 琼海市| 射阳县| 中阳县| 十堰市| 保亭| 文水县| 黄石市| 益阳市| 若尔盖县| 黑龙江省| 裕民县| 深泽县| 宜兴市| 句容市| 松江区| 南开区| 徐水县|