【Vue2.0学习】—自定义指令(四十九)

简介: 【Vue2.0学习】—自定义指令(四十九)

需求:

  • 需求1:定义一个v-big指令, 和v-text功能相似,但会把绑定的数值放大10倍
  • 需求2:定义一个v-fbind指令,和v-bind功能相似,但可以让其绑定的input元素默认获取焦点
<body>
    <div id="root">
        <h2>当前的n的值是:
            <span v-text="n"></span>
        </h2>
        <h2>放大10倍后的n的值是<span v-big="n"></span></h2>
        <button @click="n++">点我n++</button>
        <hr>
        <input type="text" v-fbind:value="n">
    </div>
    <script>
        // Vue.directive('fbind', {
        //         bind(element, binding) {
        //             element.value = binding.value
        //         },
        //         //指令所在元素被插入页面时
        //         inserted(element, binding) {
        //             element.focus();
        //         },
        //         // 指令所在的模板被重新解析时
        //         update(element, binding) {
        //             element.value = binding.value
        //         }
        //     })
        //big函数什么时候解析?
        // 1、指令与元素成功绑定时(一上来)
        //2、指令所在的模板被重新解析时
        const vm = new Vue({
            el: '#root',
            data: {
                n: 1
            },
            // 函数式
            directives: {
                //big函数什么时候解析?
                // 1、指令与元素成功绑定时(一上来)
                //2、指令所在的模板被重新解析时
                big(element, binding) {
                    console.log('big', this)
                    element.innerHTML = binding.value * 10;
                },
                fbind: {
                    //指令与元素成功绑定时
                    bind(element, binding) {
                        element.value = binding.value
                    },
                    //指令所在元素被插入页面时
                    inserted(element, binding) {
                        element.focus();
                    },
                    // 指令所在的模板被重新解析时
                    update(element, binding) {
                        element.value = binding.value
                    }
                }
            }
        })
    </script>
</body>

配置对象中的三个回调:


相关文章
|
前端开发 Java 程序员
el-upload上传组件accept属性限制文件类型(案例详解)
案例分享el-upload上传组件accept属性!欢迎留言沟通交流!
4093 0
el-upload上传组件accept属性限制文件类型(案例详解)
|
存储 缓存 前端开发
轻松搞定 Vue3+Vite+Pinia-3-getters
轻松搞定 Vue3+Vite+Pinia-3-getters
158 0
java开启线程的四种方法
这篇文章介绍了Java中开启线程的四种方法,包括继承Thread类、实现Runnable接口、实现Callable接口和创建线程池,每种方法都提供了代码实现和测试结果。
java开启线程的四种方法
|
存储 安全 Ubuntu
CentOS 与 Debian:主要相似点和不同点
【8月更文挑战第27天】
900 2
CentOS 与 Debian:主要相似点和不同点
axios中的get带参数的请求方法
axios中的get带参数的请求方法
342 2
|
JavaScript
Vue3代码展示(vue-codemirror)
`vue-codemirror`插件为Vue应用提供了一个强大的代码编辑器组件,支持代码高亮、自定义样式、暗黑模式等特性。通过简单的配置即可实现丰富的代码编辑体验。安装依赖后,创建`CodeMirror.vue`组件并在目标页面中使用即可。
1585 1
Vue3代码展示(vue-codemirror)
|
12月前
|
JavaScript
vue3,使用watch监听props中的数据
【10月更文挑战第3天】
3609 2
|
12月前
|
小程序
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
uni-app开发微信小程序使用onPullDownRefresh(下拉刷新)总结
1724 0
|
Java Android开发
IDEA设置项目编码格式【修改为GBK 或 UTF-8】
这篇文章介绍了在IntelliJ IDEA中如何设置项目编码格式,包括将项目编码修改为GBK或UTF-8的详细步骤和图解。
19380 12
IDEA设置项目编码格式【修改为GBK 或 UTF-8】