• 自定义指令


    https://cn.vuejs.org/v2/guide/custom-directive.html

    用过 v-on 、v-model、v-show 等指令,在操作 dom 时使用了 ref 属性,其实之前学过的指令也是操作dom 的一种方式,但有时,这些指令并不能满足我们的需求,因此 vue 允许我们自定义指令来操作 dom

    全局自定义指令

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>vue 自定义指令</title>
        <!--这里因为方便,我直接使用cdn方式引入-->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <p v-setcolor>自定义指令的使用</p>
        </div>
    </body>
    <script>
        // 注册一个全局自定义指令 `v-setcolor`
        Vue.directive('setcolor', {
            // 当被绑定的元素插入到 DOM 中时……
            inserted: function (el) {
                // 聚焦元素,el就是DOM对象
                el.style.color = 'red';
            }
        })
        var app = new Vue({
            el: '#app',
        })
    </script>
    </html>
    

    image-20201018141152509

    私有(局部)自定义指令

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>vue 自定义指令</title>
        <!--这里因为方便,我直接使用cdn方式引入-->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <p v-setcolor>自定义指令的使用</p>
        </div>
    </body>
    <script>
        var app = new Vue({
            el: '#app',
            // 注册 局部(私有)指令
            directives: {
                // 定义指令名称
                setcolor: {
                    // 当被绑定的元素插入到 DOM 中时……
                    inserted: function (el) {
                        // 聚焦元素
                        el.style.color = 'red';
                    }
                }
            }
        })
    </script>
    </html>
    

    image-20201018141450016

    自定义指令传值

    有的指令可以传值,有的则没有,而我们自定的指令中是没有值的,如果想为自定义指令赋值,如下即可:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>vue 自定义指令</title>
        <!--这里因为方便,我直接使用cdn方式引入-->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body>
        <div id="app">
            <p v-setcolor='colors'>自定义指令的使用</p>
        </div>
    </body>
    <script>
        var app = new Vue({
            el: '#app',
            data:{
                colors:'yellow'
            },
            // 注册 局部(私有)指令
            directives: {
                // 定义指令名称
                setcolor: {
                    // 自定义指令可以接受第二个参数
                    inserted: function (el,val) {
                        // 第二个参数中包含了指令名称、挂载名称及数据键值
                        console.log(val);
                        // 聚焦元素
                        el.style.color = val.value;
                    }
                }
            }
        })
    </script>
    </html>
    

    image-20201018141712225

    钩子函数

    其实就是什么时候触发,触发都少次

    常用的就

    image-20201018142030349

    我们一般只用inserted

  • 相关阅读:
    LINQ查询表达式(5)
    LINQ查询表达式(4)
    并不对劲的loj2279
    并不对劲的bzoj1563:p1912:[NOI2009]诗人小G
    并不对劲的loj507
    并不对劲的loj2332
    并不对劲的loj6191
    并不对劲的bzoj4552:p2824:[HEOI2016/TJOI2016]排序
    并不对劲的bzoj3924:loj2135:p3345:[ZJOI2015]幻想乡战略游戏
    并不对劲的bzoj3295:[CQOI2011]动态逆序对
  • 原文地址:https://www.cnblogs.com/makalochen/p/13834961.html
Copyright © 2020-2023  润新知