• 如何使用Vue编写自定义指令?


    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
        <style>
            .box{
                 100px;
                height: 100px;
            }
        </style>
    </head>
    <body>
        <div id="app">
            <div v-zyh.a.b="msg"></div>
            <button v-add.click="handleClick">点击</button>
            <div class="box" v-color="color"></div>
        </div>
    
        <hr>
    
        <div id="app1">
                <div v-zyh.a.b="msg"></div>
                <button v-add.click="handleClick">点击</button>
                <div class="box" v-color="color"></div>
            </div>
    </body>
    </html>
    <script src="./vue.js"></script>
    <script>
    
    
        Vue.directive("zyh",(el,{modifiers,value})=>{
            let {a,b} = modifiers;
            el.innerText = value;
            if(a){
                el.style.color="#c33";
            }
    
            if(b){
                el.style.fontWeight="900"
            }
        })
    
            
        Vue.directive("add",(el,{modifiers,value})=>{
            let {click} = modifiers;
          
           if(click){
                el.addEventListener("click",value);
    
           }
        })
    
    
        //  Vue.directive("color",(el,{modifiers,value})=>{
        //         value  =  value || '#000';
        //         el.style.background= value
          
        // })
    
    
        new Vue({
            el:"#app",
            data:{
                msg:'1905',
                color:"#c33"
            },
            methods:{
                handleClick(){
                    alert(1);
                }
            },
            directives:{
                "color"(el,{modifiers,value}){
                    value  =  value || '#000';
                    el.style.background= value
                }
                 
          
                
            }
        })
    
        new Vue({
            el:"#app1",
            data:{
                msg:'1905',
                color:"#c33"
            },
            methods:{
                handleClick(){
                    alert(1);
                }
            }
        })
    
        /*
            自定义指令编写的方式有2种
                1、全局自定义指令
                    全局的指令必须要在实例化之前进行定义
    
                    Vue.directive(参数1,参数2)
                    参数1: 指令的名称
                    参数2: 指令实现的函数
                        参数1: el 指令作用的元素
                        参数2: 对象 {modifiers:修饰符 value:表达式的结果}
    
                2、局部自定义指令
                    在vue中添加一个熟悉 directives key值是指令名称  value是指令实现的函数
        
        */
    </script>
  • 相关阅读:
    ireport制作小技巧
    Spring 自动装配 Bean
    Toad创建DBLINKsop
    Spring 读书笔记-----使用Spring容器(一)
    Spring读书笔记-----Spring的Bean之Bean的基本概念
    关于iOS开发中info.plist文件的解读
    iOS常用的第三方库GitHub地址
    NSUserDefault的使用
    论坛收集
    iOS开发的一些奇巧淫技
  • 原文地址:https://www.cnblogs.com/r-mp/p/11224121.html
Copyright © 2020-2023  润新知