zoukankan      html  css  js  c++  java
  • Vue 自定义全局指令和局部指令demo

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <div id="app">
            <p v-upper-text="message"></p>
            自定义选中焦点 <input type="text" v-focus>
        </div>
        <script src="./node_modules/vue/dist/vue.js"></script>
        <script>
            //注册全局自定义指令,可以在多个Vue管理的入口下使用该指令
            //第一个参数是指令名
            Vue.directive('upper-text',{
                
    
                bind:function(el){
                    console.log("bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。");
                    el.style.color="red"
                },
    
                //一般对js操作在inserted中,只调用一次
                //el是当前指令作用的那个Dom元素
                //binding用于获取使用了当前指令的绑定值(value)、表达式(expression)、指令名(name)等
                inserted:function(el,binding){
                    console.log("inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。")
                    //将所有字母文本内容转换为大写
                    el.innerHTML=binding.value.toUpperCase()
                },
                update:function(el,binding){
                    console.log("update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新 (详细的钩子函数参数见下)。");
                },
                componentUpdated:function(){
                    console.log("componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。")
                },
                unbind:function(){
                    console.log("unbind:只调用一次,指令与元素解绑时调用。");
                }
            })
    
            new Vue({
                el:"#app",
                data:{
                    message:'hello word'
                },
                //注册局部自定义指令,只能在当前Vue管理中使用
                directives: {
                    'focus':{ //指令名
                        //刷新页码自动获取焦点
                        inserted:function(el,binding){
                            el.focus();
                        }
                    }
                }
            })
        </script>
    </body>
    </html>
    

      

  • 相关阅读:
    建议初创团队起初也要构建分布式应用
    PHP对大文件的处理思路
    php高级研发或架构师必了解---面试题系列
    数据库schema设计与优化
    大型web系统数据缓存设计
    PHP正则表达式
    PHP 生成图片缩略图函数
    PHP与Memcached服务器交互的分布式实现源码分析
    SOA面向服务架构——SOA的概念
    php中socket的使用
  • 原文地址:https://www.cnblogs.com/guozhe/p/14851214.html
Copyright © 2011-2022 走看看