Vue (8) — 自定义指令、生命周期

目录

一、自定义指令

   1、定义语法

        (1).局部指令

        (2).全局指令

   2、配置对象中常用的三个回调

        (1).bind

        (2).inserted

        (3).update

  3、备注

  4.案例 

二、 生命周期

  1.生命周期简介

  2.vm的生命周期

  3.常用的生命周期钩子

  4.关于销毁Vue实例


一、自定义指令

   1、定义语法

        (1).局部指令

                    new Vue( { directives: {指令名:配置对象} } )

                    或者

                    new Vue( { directives {指令名:回调函数} } )

        (2).全局指令

                    Vue.directive ( 指令名,配置对象 )

                    或者

                    Vue.directive ( 指令名,回调函数 )

   2、配置对象中常用的三个回调

        (1).bind

                指令与元素成功绑定时调用

        (2).inserted

                指令所在元素被插入页面时调用

        (3).update

                指令所在的模板被重新解析时调用

  3、备注

                    1.指令定义时不加v-,但使用时要加v-

                    2.指令名如果是多个单词要使用kebab-case命名方式,不要用camelCase命名

  4.案例 

    需求一:定义一个v-big指令,和v-text功能类似,但会把绑定的数值放大10倍

    需求二:定义一个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>
</body>
<script>
    Vue.config.productionTip = false
    new Vue({
        el: '#root',
        data: {
            n: 99
        },
        directives: {
            //big函数何时被调用?1.指令与元素成功绑定时(一上来)
            //                  2.指令所在的模板被重新解析时
            big(element, binding) {
                console.log('big', this);//注意:此处的this是window
                element.innerText = binding.value * 10
            },//相当于简写形式,有bind和update函数

            fbind: {
                //指令与元素成功绑定时(一上来)
                bind(element, binding) {
                    element.value = binding.value
                },
                //指令所在元素被插入页面时
                inserted(element, binding) {
                    element.focus()
                },
                //指令所在的模板被重新解析时
                update(element, binding) {
                    element.value = binding.value
                }
            }
        }
    })
</script>

运行结果: 

二、 生命周期

  1.生命周期简介

        (1).又名生命周期回调函数生命周期函数生命周期钩子

        (2).生命周期是什么:Vue在关键时刻帮我们调用的一些特殊名称的函数

        (4).生命周期函数中的this指向vm组件实例对象

  2.vm的生命周期

              将要创建 ===> 调用beforeCreate函数

              创建完毕 ===> 调用created函数

              将要挂载 ===> 调用beforeMount函数

(重要)挂载完毕 ===> 调用mounted函数

              将要更新 ===> 调用beforeUpdate函数

              更新完毕 ===> 调用updated函数

(重要)将要销毁 ===> 调用beforeDestroy函数

              销毁完毕 ===> 调用destroyed函数

  3.常用的生命周期钩子

            1.mounted:发送ajax请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】

            2.beforeDestroy:清除定时器、绑定自定义事件、取消订阅消息等【收尾工作】

  4.关于销毁Vue实例

            1.销毁后借助Vue开发者工具看不到任何信息

            2.销毁后自定义事件会失效,但原生DOM事件依然有效

            3.一般不会再beforeDestroy操作数据,因为即使操作数据,也不会再触发更新流程了

おすすめ

転載: blog.csdn.net/m0_59897687/article/details/121766406