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

    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

  • 相关阅读:
    js输出
    mysql主从同步(4)-Slave延迟状态监控
    mysql主从同步(3)-percona-toolkit工具(数据一致性监测、延迟监控)使用梳理
    【故障】MySQL主从同步故障-Slave_SQL_Running: No
    什么是bgp线路
    F5负载均衡虚拟服务器配置FTP端口访问不了
    Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
    东风本田/XR-V/2017款
    mysqldump导出数据库导入数据库
    .htaccess设置301跳转及常用技巧整理
  • 原文地址:https://www.cnblogs.com/makalochen/p/13834961.html
Copyright © 2011-2022 走看看