vue自定义指令

v-if和v-show的区别

区别:对于元素只是一次可以选择使用v-if(消耗内存),操作次数多v-show(并没有销毁元素)

v-if 和v-for的优先级谁更高?

1.在vue2中,v-for优先级比v-if高
在vue3中,v-if优先级比v-for高
2. v-if和v-for不能同时使用
3. 同时使用需要在外层嵌套盒子,在外层进行v-if判断,在内层进行v-

注:使用v-else,v-else-if前必须有v-if

接着上一篇的指令

v-else和v-else-if判断

v-text和v-html

v-text和v-html,插值区别
v-text和v-html相同点:都会覆盖文本
不同点:v-text只读取文本,v-html读取标签插值添加值
不要在用提交时使用v-html,不要在动态渲染时时使用v-html

解决屏幕闪烁的问题,第一在标签上添加v-cloak,第二需要设置上面样式

[v-cloak]{
            display: none;
        }

不要设置值的指令

 v-else,v-cloak,v-once,v-pre 
 <!-- v-once设置了以后,更改值不会发生改变,优化性能 -->
 <!-- v-pre设置了以后,会让插值和指令失效 -->


e和event区别

        // 1.定义函数(),接收时e,当为形参
        // 2.e自身某个事件带有的方法,event是window带有的
        // 3.e = window.event;兼容

自定义语法

    // 自定义指令
        // 规则:定义指令名称不能使用驼峰和v-,要是用-连接,记得添加引号
        // 使用时要v-自定义名称
        // 函数写法
        // 名称(节点,绑定对象){}
        // 对象写法
        // 名称:{
            // 绑定成功调用
            // bind(节点,绑定对象){},
            // 插入到页面调用
            // inserted(节点,绑定对象){},
            // 重新解析时调用(值发生改变)
            // update(节点,绑定对象){}
        // }
        // 1.局部自定义指令
        //directives ,写入Vue实例中
        // 2.全局自定义指令
        // Vue.directive ,定义在实例化之前




directives:{
            "nums":{
                // bind成功绑定时调用
                bind(element,binding){
                    console.log(element);
                    console.log(binding);
                    element.innerText = binding.value*10;
                    binding.value = binding.value*10;
                    console.log("----------------");
                },
                // inserted成功插入页面调用
                inserted(element,binding){
                    console.log(element);
                    console.log(binding);
                    element.innerText = binding.value*100;
                    binding.value = binding.value*100;
                    console.log("----------------");
                },
                // update重新解析时(改变)调用
                update(element,binding){
                    console.log(element);
                    console.log(binding);
                    element.innerText = binding.value+binding.oldValue;
                    binding.value = binding.oldValue;
                    console.log("----------------");
                }
            }
        }


  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值