vue2学习----vue指令

本文详细介绍了Vue.js中的内置指令如v-on用于事件处理,v-bind用于动态绑定HTML属性,v-for用于循环渲染,v-model实现双向数据绑定,以及自定义指令的语法、注册方式和应用场景,包括指令修饰符和loading状态的封装。
摘要由CSDN通过智能技术生成

vue----内置指令

1.v-on的作用:注册事件=添加监听+提供处理逻辑

①v-on:事件名=“内联语句”

②v-on:事件名=“methods中的函数名”

v-on:click="count++"  等价于@click="count++" 

v-on:click="fn()"  等价于@click="fn()" 

2.v-bind的作用:动态的设置html的标签属性 -> src  url  title

v-bind:src="imgUrl" 等价于 :src="imgUrl"

3.v-for的作用:基于数据循环,多次渲染整个元素 -> 数组、对象、数字...

①v-for=“(item,index)in 数组”  其中item表示每一项,index表示下标

操作:通过id删除数组中的对应项,可以用filter

filter:根据条件,保留满足条件的对应项,得到一个新数组,他不会改变原数组

booklist.filter(item=> item.id!==id)

②v-for中的key(切记使用v-for需要把key加上)

key属性=“唯一标识”   作用:给列表项添加唯一标识,便于vue进行列表项的正确排序复用

4.v-model的作用:给表单元素使用,双向数据绑定->可以快速获取或设置表单元素内容

多行代码一起写:alt+鼠标左键 可以实现多光标

.sync修饰符,props不为value的时候

5.指令修饰符

①@keyup.enter="add" 键盘回车时触发add事件

②v-model.trim 去掉首尾空格、v-model.number 转数字

③事件名.stop 阻止冒泡   事件名.prevent 阻止默认行为

6.v-bind对于样式控制的增强,操作class

语法: :class=“对象/数组”

例如 :class=“{类名1:布尔值,类名2:布尔值}”  适用场景:一个类名,来回切换

:class=“[类名1,类名2]”  适用场景:批量添加或删除类

7.v-bind对于样式控制的增强,操作style

语法:  :style="样式对象"

例如  :style=“{css属性名1:css属性值,css属性名2:css属性值}”

vue----自定义指令

自定义指令:自己定义的指令,可以封装一些dom操作,扩展额外功能

1.全局注册语法

Vue.directive('指令名',{
    inserted (el){ //el就是指令所绑定的元素
     // inserted表示在元素插入页面是调用这个方法
        // 可以对el标签扩展额外功能
        el.focus()
    }
})

2.局部注册语法

directives:{
    "指令名":{
        inserted(){
            // 可以对el标签扩展额外功能
            el.focus()
        }
    }
}

在标签处写v-指令名 去使用

3.指令的值

语法:在绑定指令时,可以通过"等号"的形式为指令绑定具体的参数值

<div v-color="color">我是内容</div>

通过binding.value可以拿到指令值,只控制修改会触发update函数

  directives: {
    color: {
//元素被添加到页面中时
      inserted(el, binding) {
        el.style.color = binding.value;
      },
// 指令的值修改的时候触发,提供值变化后,dom更新的逻辑
      update(el, binding) {
        el.style.color = binding.value;
      },
    },
  },

4.v-loading指令封装

分析:①本质loading效果就是一个蒙层,盖在了盒子上

②数据请求中,开启loading状态,添加蒙层

③数据请求完毕,关闭loading状态,移除蒙层

实现:①准备一个loading类,通过伪元素定位,设置宽高,实现蒙层

②开启关闭loading状态(添加移除蒙层),本质只需要添加移除类即可

③结合自定义指令的语法进行封装复用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值