首页 > 其他分享 >自定义命令(directive)

自定义命令(directive)

时间:2022-12-05 21:36:23浏览次数:40  
标签:自定义 directive binding focus value element content 命令 指令

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="../vue.js"></script>
    </head>
    <body>
        <div id="root">
            <!-- 
            1.定义一个v-big指令,和v-text功能类似,但会吧绑定数值放大10倍
            2.定义一个v-fbing指令,和v-bind功能类似,但可以让其所绑定的input元素默认获取焦点
            定义语法:
            1.局部指令
            new Vue({                                          new Vue({
                   directives:{指令名:配置对象}                        directives{指令名:回调函数}
                    })                                             })
            2.全局指令
            Vue.directive(指令名:配置对象)                        Vue.directive(指令名,回调函数)
            二。配置对象中常用三个回调
            bind:指令与元素成功绑定时
            inserted:指令所在元素被插入页面时
            update:指令所在模板被重新解析
            三。备注
            注意:v-content命名问题:如果有多个单次名称的时候,
            v-content-Number(需要用这种方法进行写入)   vue中:'content-number' 用引号括起来   注意:不能大写
            --> 
            <!-- 1 -->
            <h2>当前值: <span v-text="n"></span> </h2>
            <h3>请输入内容:<span v-content-number="n"></span></h3>
            <!-- <h3>请输入内容:<span v-content="n"></span></h3> -->
            <button @click="n++">点击后值相加</button>
            <hr>
            <!-- 2 -->
            <input type="text" v-fbind:value="n">
        </div>
        <script>
            Vue.config.productionTip=false
            //全局使用(find)
            Vue.directive('fbind',{
                bind(element,binding){
                    element.value = binding.value
                },
                //指令所在元素被插入页面时
                inserted(element,binding){
                    element.focus()//首次获取焦点
                },
                //指令所在模板被重新解析
                update(element,binding){
                    element.value = binding.value
                    element.focus()//一直获取焦点 
                }
            })
            //全局使用(v-content)
            Vue.directive('content-number',function(element,binding){
                console.log(element,binding,this)//this指向window
                element.innerText = binding.value * 10
            })
            new Vue({
                el:'#root',
                data:{
                    n:1
                },
                //只能在局部中使用,如果需要在全局使用
                directives:{
                    //content函数何时被调用:1.指令与元素成功绑定时,2、指令所在模板被重新解析
                    
                    //写法1
                    // content(element,binding){
                    //     console.log(element,binding)
                    //     element.innerText = binding.value * 10
                    // },
                    
                    //或者这样写
                    // 'content-number'(element,binding){
                    //      console.log(element,binding,this)//this指向window
                    //     element.innerText = binding.value * 10
                    // },
                    
                    //局部
                    // fbind:{
                    //     //指令与元素成功绑定时
                    //     bind(element,binding){
                    //         element.value = binding.value
                    //     },
                    //     //指令所在元素被插入页面时
                    //     inserted(element,binding){
                    //         element.focus()//首次获取焦点
                    //     },
                    //     //指令所在模板被重新解析
                    //     update(element,binding){
                    //         element.value = binding.value
                    //         element.focus()//一直获取焦点 
                    //     }
                    // }
                }
            })
        </script>
    </body>
</html>

 

标签:自定义,directive,binding,focus,value,element,content,命令,指令
From: https://www.cnblogs.com/wsx123/p/16953586.html

相关文章

  • 防火墙命令
    整理的一些关于iptables和firewall防火墙的命令,做参考这是iptables的默认防火墙配置文件在/etc/sysconfig/iptables中iptables-L-n 显示所有防火墙规则serviceiptable......
  • LINUX一些命令
    linux常用的指令ls查看目录中的文件cd/home进入‘/home’目录;cd..返回上一级目录;cd../..返回上两级目录mkdirdir1创建一个叫做‘dir1’的目录rmdirdir......
  • 将自定义的 bat 文件设置成开机自启
    将自定义的bat文件设置成开机自启1、创建一个bat文件2、在win+R输入shell:startup3、将bat文件复制至该文件夹下即可。......
  • maven命令学习-20221205
    1.查看当前maven使用的settting文件mvnhelp:effective-settings2.使用maven把jarinstall进入仓库mvninstall:install-file-Dfile=D:\project\company-biz-11.5.0......
  • Docker常用操作命令
    官方hubhttps://hub.docker.com/拉取镜像dockerpullubuntu可以指定版本dockerpullubuntu:18.04可以考虑使用镜像加速运行容器dockerrun-itubuntu/bin/ba......
  • Redis配置、优化以及命令
    一、关系数据库和非关系型数据库1、关系型数据库关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。SQL语句(标准数据查询语言)就是一种......
  • Influxdb 接入HTTP终端实现报警自定义
    十年河东,十年河西,莫欺少年穷学无止境,精益求精influxdb的报警由以下三种组成   1、创建检查   红色框为绝对值检查,绿色框为【死人检查】,这里选择绝对值检......
  • IDEA配置自定义标签,实现高亮注释~
    为什么要写这么一篇博客呢?不知道大家有没有这样的一种苦恼,就是在写代码的时候遇到复杂的核心的代码,想加一个特殊的注释方便后期自己或者同事查看,但是这玩意IDEA好像只给我......
  • MongoDB——linux中yum命令安装及配置
    一、创建mongodb-org-3.4.repo文件vi/etc/yum.repos.d/mongodb-org-3.4.repo  将下面内容添加到创建的文件中[mongodb-org-3.4]name=MongoDBRepositorybaseurl=htt......
  • 【ES系列七】——ik自定义分词词库
    一、业务场景  在利用ik分词的过程中,当ik的分词规则不满足我们的需求了,这个时候就可以利用ik的自定义词库进行筛选,举个例子:当我要将“我是中国人,我想测试一下”这句话......