黒馬学習レコード--Vue-カスタムコマンドはテキストボックスに焦点を当て、バインドされた要素に指定したフォント色とフォントの太さを設定します.

2706 ワード

カスタムコマンド
  • カスタムグローバルおよびローカルのカスタム命令:
  • 
        //         v-focus,            :
    
        Vue.directive('focus', {
    
          inserted: function (el) { // inserted                
    
            el.focus();
    
          }
    
        });
    
    
    
        //         v-color   v-font-weight,                      :
    
          directives: {
    
            color: { //             
    
              bind(el, binding) {
    
                el.style.color = binding.value;
    
              }
    
            },
    
            'font-weight': function (el, binding2) { //           ,       bind   update       
    
              el.style.fontWeight = binding2.value;
    
            }
    
          }
    
    
  • カスタム命令の使用方法:
  • 
    
    
    

    Vue 1.xのカスタム要素命令【廃棄済み、了解可】
    Vue.elementDirective('red-color', {
      bind: function () {
        this.el.style.color = 'red';
      }
    });
    

    使用方法:
    1232
    

    カスタムグローバルコマンド
    //     Vue.directive()          v-focus
        //   :  1 :      ,  ,      ,       ,     v-   , 
        //   :       ,             v-        
        //    2:      ,      ,          ,            ,       
        Vue.directive('focus', {
          bind: function (el) { //              ,        bind   ,     
            //   :        ,     ,    el ,              ,   el   ,      JS  
            //              ,        DOM  ,   ,   focus       
            //    ,    ,    DOM  ,      
            // el.focus()
          },
          inserted: function (el) {  // inserted         DOM    ,    inserted   【  1 】
            el.focus()
            //  JS       ,    inserted     ,   JS     
          },
          updated: function (el) {  //  VNode     ,    updated,        
    
          }
        })
    
    
    
        //                 
        Vue.directive('color', {
          //   ,            ,                 ,               
          //              ,   ,               ,       
          bind: function (el, binding) {
            // el.style.color = 'red'
            // console.log(binding.name)
            //         ,       bind   
    
            // console.log(binding.value)
            // console.log(binding.expression)
    
            el.style.color = binding.value
          }
        })
    

    カスタムプライベートコマンド
    directive複数のsをvueインスタンスに配置
    directives: { //        
            'fontweight': { //        
              bind: function (el, binding) {
                el.style.fontWeight = binding.value
              }
            },
            'fontsize': function (el, binding) { //   :   function             bind   update   
              el.style.fontSize = parseInt(binding.value) + 'px'
            }
          }