vue自定义指令(图片加载不出来,使用默认图片)

官网解释全局自定义指令
v-什么的都是指令
应用场景:vue框架内置的指令系统无法满足我们业务需求

// 注册
Vue.directive('my-directive', {
  bind: function () {},
  inserted: function () {},
  update: function () {},
  componentUpdated: function () {},
  unbind: function () {}
})

my-directive:这个是名称
第二个是个函数里面是一个一个的函数;
语法: <img v-自定义指令 />

思路:监听img的onerror事件
第一步:引入vue

import vue from 'vue'

使用全局指令注册一下:并且引入到mian.js 全局里面

vue.directive('errorimg' ,{
	//执行时机:绑定了当前指令的元素的所有属性和事件
	inserted(el){
		//获取的是真是的dom元素,可以使用dom的所有事件
		console.log(el)
		el.onerror = function(){
			//将默认图片赋值给el.src属性
			el.src = '默认图片地址'
		}
	},
})

如果有分页例如< 1 2 3 4 >
会在第二页的不会渲染
这个时候我们就换个函数

  componentUpdated: function () {},

打印一下结果依旧是真实的dom元素,

vue.directive('errorimg' ,{
	//执行时机:绑定了当前指令的元素的所有属性和事件
	inserted(el){
		//获取的是真是的dom元素,可以使用dom的所有事件
		console.log(el)
		el.onerror = function(){
			//将默认图片赋值给el.src属性
			el.src = '默认图片地址'
		}
	},
	componentUpdated: function (el) {
		el.src = '默认图片地址'
	},
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值