自定义指令

自定义指令是vue给我们提供的操作dom的空间。可以用来封装插件。

我们来模拟下,element-ui的loading的指令服务

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="../vue.js"></script>
    <style>
        .active{
            position: absolute;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body>
    <div id="app">
        <jos v-josson.fulls="flag"></jos>
    </div>
</body>
<script>
Vue.directive("josson",{
    inserted:function(el,binding,vnode){
        console.log(binding)
        if(binding.value){
         var img = document.createElement("img");
            img.src ="../timg.gif"
            if(binding.modifiers.full){
                img.className = "active"
            }
            el.appendChild(img);
           } 
    },
    update:function(el,binding,vnode){
        if(binding.value){
            var img = document.createElement("img");
            img.src ="../timg.gif"
            img.className = "active"
            el.appendChild(img);
        }else{
            var imgs = el.getElementsByTagName("img")[0];
            console.log(imgs)
            el.removeChild(imgs);
        }
    }
})
Vue.component("jos",{
    props:["a"],
    data:function(){
        return {
            flag :true
        }
    },
    template:"<h1>josson</h1>",
    methods:{
        
    }
})
    var app=new Vue({
        el:"#app",
        data:{
            flag:true
        },
        methods:{
        
        }
    })
</script>
</html>

下来菜单,table表格用的内容分发

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容