自定义指令_命令指令代码大全

自定义指令_命令指令代码大全<! 一、定义语法: (1).局部指令: new Vue({ new Vue({ directives:{指令名:配置对象} 或 directives{指令名:回调函数} }) )} (2).全局指令: Vue.directive(指令名,配置对象) 或 Vue.directive(指令名

自定义指令_命令指令代码大全"

<!–
        一、定义语法:
            (1).局部指令:
                new Vue({                                       new Vue({
                    directives:{指令名:配置对象}    或               directives{指令名:回调函数}    
                })                                                  )}
            (2).全局指令:
                    Vue.directive(指令名,配置对象) 或 Vue.directive(指令名:回调函数)
        二、配置对象中常用的3个回调:
            (1).bind:指令与元素成功绑定时调用。
            (2).inserted:指令所在元素被插入页面时调用。
            (3).update:指令所在模板结构被重新解析式调用
        三、备注:
                1.指令定义式不加v-,但使用时要加v-;
                2.指令时如果时多个单词,要使用kebab-case命名方式,不要用camelCase命名
     –>

<body>
    <!--  所有指令相关的函数肯定不是vm -->
    <!-- 
        vuemoan语法有两大类:
            1.插值语法:
                功能:用于解析标签体内容
                写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性
            2.指令语法:
                功能:用于解析标签(包括:标签属性.标签体内容.绑定属性)
                举例:v-bind:href = "xxx" 或 简写为 href= "xxx",xxx同样要写js表达式
                且可以直接读取到data中的所有属性
            备注:Vue中有很多的指令,且形式都是:v-???? ,此处我们只是拿v-bind举个例子
            
            
     -->

    <!-- 需求1: 定义一个v-big指令,和v-text功能类似,但会把绑定的数值方法10倍 -->
    <!-- 需求2: 定义一个v-fbind指令,和v-bind功能类似,但可以让其所绑定的input元素默认获取焦点 -->
    <div id="root">
        <div>插值语法</div>
        <h3>n值:{{n}}</h3>
        <!-- <h3 v-big='n'>n值:{{n}}</h3> -->
        <h3 v-big-number='n'>n值:{{n}}</h3>
        <button @click="n++">点击+1</button>
        <hr>
        <h1>指令语法</h1>
        <hr>
        <input type="text" v-fbind:value="n">
    </div>
    <div id="out">
        <input type="text" v-fbind:value='x'>
    </div>
</body>
<script>
    Vue.config.productionTip = false;
    // 全局自定义指令
    Vue.directive("fbind", {
        // 指令与元素成功绑定时(一上来)
        bind(element, binding) {

            element.value = binding.value;
            console.log(element.value, binding.value)
        },
        // 指令所在元素被插入页面时
        inserted(element, binding) {
            element.focus()

        },
        // 指令所在的模板被重新解析调用
        update(element, binding) {
            element.value = binding.value
        }
    })
    new Vue({
        el: '#root',
        data: {
            n: 1,
        },
        // 所有指令相关的函数肯定不是vm
        // directives里面都是局部指令
        directives: {
            // big函数何时会被调用?
            // 1.指令(v-fbind)与元素(input)成功绑定时(仅代表在内存建立连接不代表放入页面了)
            // 2.指令所在的模板被重新解析时

            // big(element, binding) {      // 简写形式
            'big-number'(element, binding) {
                // console.log('big', this)   // 此时this指向window
                // console.log(element,binding)
                element.innerHTML = binding.value * 10;
            },
            /*
                 fbind: {
                    // 不可以写错,写错vue就找不见了
                    // 指令与元素成功绑定时(一上来)
                    bind(element, binding) {
  
                        element.value = binding.value;
                        console.log(element.value, binding.value)
                    },
                    // 指令所在元素被插入页面时
                    inserted(element, binding) {
                        element.focus()
  
                    },
                    // 指令所在的模板被重新解析调用
                    update(element, binding) {
                        element.value = binding.value
                    }
                }
                 */
        },
    })
    new Vue({
        el: "#out",
        data: {
            x: 1,
        }
    })
</script>

</html>

 

今天的文章自定义指令_命令指令代码大全分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/54660.html

(0)
编程小号编程小号
上一篇 2023-08-29
下一篇 2023-08-29

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注