vue指令,自定义指令

学过的指令:
v-bind:单向绑定解析表达式,可简写为:XX

v-model :双向数据绑定

v-for :遍历数组/对象/字符串

v-on:绑定事件监听,可简写为@

v-if:条件渲染(动态控制节点是否存存在)

v-else:条件渲染(动态控制节点是否存存在)

v-show:条件渲染(动态控制节点是否展示)

新指令


v-text指令:

1.作用:向其所在的节点中渲染文本内容。
2.与插值语法的区别: v-text会替换掉节点中的内容,{{xXx}}则不会。


v-html指令:
1.作用:向指定节点中渲染包含html结构的内容。
2.与插值语法的区别:
(1).v-html会替换掉节点中所有的内容,{{xx}}则不会。
(2).v-htm1可以识别html结构。
3.严重注意: v-html有安全性问题!!!
(1).在网站上动态渲染任意HTML是非常危险的,容易导致XSS攻击。
(2).一定要在可信的内容上使用v-html,永不要用在用户提交的内容上!


v-cloak指令(没有值):
1.本质是一个特殊属性,Vue实例创建完毕并接管容器后,会删掉v-cloak属性。
2.使用css配合v-cloak可以解决网速慢时页面展示出{{xxx}}的问题。

在这里插入图片描述
在这里插入图片描述


v-once指令:
1.v-once所在节点在初次动态渲染后,就视为静态内容了。只渲染一次!
2.以后数据的改变不会引起v-once所在结构的更新,可以用于优化性能。

在这里插入图片描述

Vue中的事件修饰符:
1 . prevent: 阻止默认事件(常用);
2.stop:阻止事件冒泡(常用);
3.once:事件只触发一次(常用:
4.capture:使用事件的插获模式;
5.self:只有event.target是当前操作的元素时才触发事件:
6.passive:事件的默认行为立即执行,无需等待事件回调执行完毕:


函数式自定义指令:

自定义函数不需要返回值!!!

Vue模板语法有2大类:

1.插值语法:
功能:用于解析标签体内容。
写法:{{xxx}},xxx是js表达式,且可以直接读取到data中的所有属性。
2.指令语法:
功能:用于解析标签(包括:标签属性、标签体内容、绑定事件…)。

big函数何时会被调用?
1.指令与元素成功绑定时(一上来)。
2.指令所在的模板被重新解析时。、

第一条可以解释,那么第二条我们应该如何解释呢?

在这里插入图片描述
假设我们的元素v-big操作的是n,但是!我们我们的name发生改变的时候我们的指令也会触发。

在这里插入图片描述
我们的big里面第一个元素是真实的结构也就是这里的span标签,第二个元素就是我们绑定的数据!!!

对象式自定义指令:

需求2:定义一个v-fbind指令,和v-bind功能类似,但可以让其所绑定的input元素默认获取焦点。

会出现问题!!

在这里插入图片描述
这行代码并不会一开始就执行!!!什么意思呢?呈现出来的效果就是我们一开始并不会获取焦点,因为我们获取焦点必须将他写成对象!!!因为我们在focus的时候根本拿不到,那个节点(还没有生成)

在这里插入图片描述

vue中也可以这样定义,让我们在不同的时间点去调用,这样就能解决了


自定义容易踩的坑

1.如果我们指令名中间有-那么就要用引号包起来,指令定义时不加v-,使用的时候要加v-
在这里插入图片描述

2.所有指令中的this都是window

3.定义为全局指令方法:

3.1对象写法:

在这里插入图片描述

3.2函数写法:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值