zoukankan      html  css  js  c++  java
  • Vue 自定义指令

    自定义指令

    1. 为何需要自定义指令?

      内置指令不满足需求

    2. 自定义指令的语法规则(获取元素焦点)

    Vue.directive('focus' {
        inserted: function(el) {  // 获取元素的焦点 el.focus();
        }
    }) 
    

    3.自定义指令用法

    <input type="text" v-focus>
    

    例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    </head>
    <body>
      <div id="app">
        <input type="text" v-focus>
        <input type="text">
      </div>
      <script type="text/javascript" src="js/vue.js"></script>
      <script type="text/javascript">
        /*
          自定义指令
        */
        Vue.directive('focus', {
          inserted: function(el){
            // el表示指令所绑定的元素
            el.focus();
          }
        });
        var vm = new Vue({
          el: '#app',
          data: {
            
          },
          methods: {
            handle: function(){
              
            }
          }
        });
      </script>
    </body>
    </html>
    

    4. 带参数的自定义指令(改变元素背景色)

    Vue.directive(‘color', {
        inserted: function(el, binding) {
             el.style.backgroundColor = binding.value.color;
        }
    })
    

    5. 指令的用法

    <input type="text" v-color='{color:"orange"}'>
    

    例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    </head>
    <body>
      <div id="app">
        <input type="text" v-color='msg'>
      </div>
      <script type="text/javascript" src="js/vue.js"></script>
      <script type="text/javascript">
        /*
          自定义指令-带参数
        */
        Vue.directive('color', {
          bind: function(el, binding){
            // 根据指令的参数设置背景色
            // console.log(binding.value.color)
            el.style.backgroundColor = binding.value.color;
          }
        });
        var vm = new Vue({
          el: '#app',
          data: {
            msg: {
              color: 'blue'
            }
          },
          methods: {
            handle: function(){
              
            }
          }
        });
      </script>
    </body>
    </html>
    
    

    5. 局部指令

    directives: {
       focus: { // 指令的定义
            inserted: function (el) {
                el.focus()
            }
        }
    }
    

    例:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    </head>
    <body>
      <div id="app">
        <input type="text" v-color='msg'>
        <input type="text" v-focus>
      </div>
      <script type="text/javascript" src="js/vue.js"></script>
      <script type="text/javascript">
        /*
          自定义指令-局部指令
        */
        var vm = new Vue({
          el: '#app',
          data: {
            msg: {
              color: 'red'
            }
          },
          methods: {
            handle: function(){
    
            }
          },
          directives: {
            color: {
              bind: function(el, binding){
                el.style.backgroundColor = binding.value.color;
              }
            },
            focus: {
              inserted: function(el) {
                el.focus();
              }
            }
          }
        });
      </script>
    </body>
    </html>
    
    

    本文来自博客园,作者:一纸年华,转载请注明原文链接:https://www.cnblogs.com/nullcodeworld/p/15337407.html

  • 相关阅读:
    意外发现在调用Activator.CreateInstance的时候在构造函数处加断点居然可以~~
    手机操作系统
    读取Excel文件到DataSet
    支持mrp软件的手机(MTK手机)检测
    如何查看手机系统版本
    .NET进度条用例
    dos命令导出指定类型的文件列表
    FTP上传下载 FTP操作类 FTPHelper 异步上传 递归创建文件文件夹
    批量删除GridView(DataGrid)选中项
    sql判断临时表是否存在
  • 原文地址:https://www.cnblogs.com/nullcodeworld/p/15337407.html
Copyright © 2011-2022 走看看