네 이 티 브 Vue 오른쪽 메뉴 구성 요소 기능 구현

Vue 네 이 티 브 오른쪽 메뉴 구성 요소 구현,제로 의존
 
빠 른 설치npm install vue-contextmenujs쓰다
테스트 에 사용 되 는 것 은 element-ui 아이콘 입 니 다.

import Contextmenu from "vue-contextmenujs"
Vue.use(Contextmenu);
<template>
 <div id="app" style="width:100vw;height:100vh" @contextmenu.prevent="onContextmenu"></div>
</template>
<script>
export default {
 methods: {
  onContextmenu(event) {
   this.$contextmenu({
    items: [
     {
      label: "  (B)",
      onClick: () => {
       this.message = "  (B)";
       console.log("  (B)");
      }
     },
     { label: "  (F)", disabled: true },
     { label: "    (R)", divided: true, icon: "el-icon-refresh" },
     { label: "   (A)..." },
     { label: "  (P)...", icon: "el-icon-printer" },
     { label: "  (C)...", divided: true },
     {
      label: "      (T)",
      divided: true,
      minWidth: 0,
      children: [{ label: "       " }, { label: "       " }]
     },
     {
      label: "    (R)",
      minWidth: 0,
      children: [
       {
        label: "       ",
        onClick: () => {
         this.message = "       ";
         console.log("       ");
        }
       },
       { label: "    " }
      ]
     },
     { label: "       (V)", icon: "el-icon-view" },
     { label: "  (N)" }
    ],
    event,
    customClass: "class-a",
    zIndex: 3,
    minWidth: 230
   });
   return false;
  }
 }
};
</script>
ps:아래 vue 메뉴 이외 의 영역 을 보고 메뉴 조작 숨 기기

data() {
   return {
    menuShow: false //v-show      
   }
},

mounted (){
   let _this = this;
   document.addEventListener('click', function (e) {    //                        ,    ,          ,         
   let flag = e.target.contains(document.getElementsByClassName('menu-class')[0])
   console.log(flag)
   if(!flag) return
   _this.menuShow = false
   })
}
총결산
위 에서 말 한 것 은 편집장 님 께 서 소개 해 주신 원생 Vue 가 오른쪽 버튼 메뉴 구성 요 소 를 실현 하 는 것 입 니 다.여러분 께 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.편집장 님 께 서 바로 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
만약 당신 이 본문 이 당신 에 게 도움 이 된다 고 생각한다 면,전 재 를 환영 합 니 다.번 거 로 우 시 겠 지만 출처 를 밝 혀 주 십시오.감사합니다!

좋은 웹페이지 즐겨찾기