Vue.directive 사용자 정의 명령
전역 API 는 구조 기 에 있 지 않 고 전역 변 수 를 먼저 설명 하거나 Vue 에 새로운 기능 을 직접 정의 합 니 다.Vue 에는 오늘 우리 가 배 울 명령 Vue.directive 와 같은 전역 API 가 내장 되 어 있 습 니 다.쉽게 말 하면 구조 기 외부 에서 Vue 가 제공 하 는 API 함수 로 새로운 기능 을 정의 하 는 것 이다.
2.Vue.directive 사용자 정의 명령
우 리 는 시즌 1 에서 내부 명령 을 배 웠 고 우 리 는 자신 만 의 명령 을 정의 할 수 있다.예 를 들 어 우 리 는 v-jspang 의 명령 을 정의 해 야 한다.역할 은 바로 문 자 를 녹색 으로 만 드 는 것 이다.
사용자 정의 명령 에 앞서 우 리 는 작은 기능 을 썼 습 니 다.페이지 에 숫자 가 10 이 고 숫자 아래 에 단추 가 있 습 니 다.우 리 는 단 추 를 한 번 누 를 때마다 숫자 를 1 로 추가 합 니 다.
3.사용자 정의 명령 에서 전달 하 는 세 가지 매개 변수
el:명령 에 연 결 된 요 소 는 DOM 을 직접 조작 할 수 있 습 니 다.
binding: 하나의 대상,명령 을 포함 한 많은 정보.
vnode:Vue 컴 파일 로 생 성 된 가상 노드 입 니 다.
4.사용자 정의 명령 의 생명주기
사용자 정의 명령 은 다섯 개의 생명주기(갈고리 함수 라 고도 함)가 있 는데 각각 bind,inserted,update,componentUpdated,unbind 이다.
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <script type="text/javascript" src="../assets/js/vue.js"></script>
  <title>vue.directive      </title>
</head>
<body>
  <h1>vue.directive      </h1>
  <hr>
  <div id="app">
    <div v-jspang="color" id="aaa">
      {{num}}
    </div>
    <p>
      <button @click='jia'>  </button>
    </p>
    <p>
      <button onclick='unbind()'>  </button>
    </p>
  </div>
 
  <script type="text/javascript">
 
    function unbind(){
      app.$destroy();
    }
 
    //     
    Vue.directive('jspang',{
      bind:function(el,binding,vnode){//   
        /**
            var s=JSON.stringify;
            el.innerHTML = 
              'name:'    + s(binding.name) +'<br>' + 
              'value:'    + s(binding.value) +'<br>' + 
              'expression:' + s(binding.expression) +'<br>' ;
        **/
        el.style='color:'+binding.value;
         
 
        console.log('1 - bind');
      },
      inserted:function(){//     
        console.log('2 - inserted');
      },
      update:function(){//    
        console.log('3 - update');
      },
      componentUpdated:function(){//      
        console.log('4 - componentUpdated');
      },
      unbind:function(){//  
        console.log('5 - unbind');
      }
 
    })
 
    var app=new Vue({
      el:'#app',
      data:{
        color:'green',
        num:10
      },
      methods:{
        jia:function(){
          this.num++;
        }
      }
    })
  </script>
</body>
</html>
bind:function(){//   
   console.log('1 - bind');
},
inserted:function(){//     
   console.log('2 - inserted');
},
update:function(){//    
   console.log('3 - update');
},
componentUpdated:function(){//      
   console.log('4 - componentUpdated');
},
unbind:function(){//  
   console.log('1 - bind');
}이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue Render 함수로 DOM 노드 코드 인스턴스 만들기render에서createElement 함수를 사용하여 DOM 노드를 만드는 것은 직관적이지 않지만 일부 독립 구성 요소의 디자인에서 특수한 수요를 충족시킬 수 있습니다.간단한 렌더링 예는 다음과 같습니다. 또한 v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.