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

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 【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>

配置对象中的三个回调:


相关文章
|
3天前
|
JavaScript
Vue学习系列(二)——组件详解
Vue学习系列(二)——组件详解
|
1月前
|
JavaScript
在Vue中,如何使用自定义指令?
在Vue中,如何使用自定义指令?
17 1
|
10月前
|
Web App开发 JavaScript 前端开发
Vue学习之Vue原理与Vue基础语法、事件标签总结
Vue主要的就是MVVM的实现,它既实现了Anguler的模块化开发,又实现了React的虚拟DOM,但是作为一个后端开发人员,我们只要求会用就可以,并不用去了解ES6标准、Node.js啥的,在这里就Vue简单的一些操作进行梳理一下。
57 0
|
1月前
|
JavaScript
【Vue2.0学习】—组件(五十一)
【Vue2.0学习】—组件(五十一)
【Vue2.0学习】—组件(五十一)
|
1月前
|
JavaScript 调度 开发者
Vue3中如何使用自定义指令?
Vue3中如何使用自定义指令?v
59 1
|
1月前
|
JavaScript
【Vue2.0学习】—Vue脚手架(五十二)
【Vue2.0学习】—Vue脚手架(五十二)
|
6月前
【Vue2.0学习】—键盘事件(三十三)
【Vue2.0学习】—键盘事件(三十三)
|
1月前
|
JavaScript 前端开发 大数据
⚡️[前端学习]从0到1做一个Vue风格的Todolist(Vue牛刀小试)⚡️
⚡️[前端学习]从0到1做一个Vue风格的Todolist(Vue牛刀小试)⚡️
35 0
|
1月前
【Vue2.0学习】— 收集表单数据(四十三)
【Vue2.0学习】— 收集表单数据(四十三)
|
1月前
|
JavaScript
【Vue2.0学习】— Vue监视数据的原理(四十二)
【Vue2.0学习】— Vue监视数据的原理(四十二)