自定义指令,自定义过滤器,混入

本文深入探讨Vue.js中的自定义指令与过滤器应用,解析全局与局部定义方式,展示如何通过自定义指令增强组件功能,以及利用过滤器进行数据格式化,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

自定义指令

全局定义

​ 类似全局变量,一经定义,哪里都能使用

​ Vue.directive(指令的名称,options)

​ 指令格式:v-xxx v-会自动添加

参数:el:elment  

	 binding:一个对象,包含以下属性

		name:指令名,不包括 v- 前缀;

		value:指令的绑定值;

		oldValue:指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用;

		expression:字符串形式的指令表达式;

		arg:传给指令的参数,可选;

		modifiers:一个包含修饰符的对象。

	vnode:Vue 编译生成的虚拟节点。

	oldVnode:上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。
	Vue.directive('指令名',{
      	bind(el,binding,vnode){//将定义的指令绑定到元素身上时触发
            //只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置
        }
      	inserted(el,binding,vnode){//自定义指令绑定的元素插入页面时触发,当我们在视图能看到这个元素时,它触发了
      	
      	//这里是操作DOM
          
      	}
      	componentUpdated(el,binding,vnode,oldVnode){//表示组件以及子组件发生更改时触发
          
      	}
      	update(el,binding,vnode,oldVnode,vnode,oldVnode){//表示元素以及子元素发生更改时触发
          
      	}
      	undind(el,binding,vnode){//解绑时触发,指令绑定的元素被删除
            //只调用一次,指令与元素解绑时调用。
          
      	}
      
  	})
    
    new.Vue({})

局部定义

​ durectives 选项

new.Vue({
	el:'#app',
	data:{
        
	},
	methods:{
        
	},
	directives:{
        '指令名'{
        bind(el,binding,vnode){//将定义的指令绑定到元素身上时触发
            //只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置
        }
      	inserted(el,binding,vnode){//自定义指令绑定的元素插入页面时触发,当我们在视图能看到这个元素时,它触发了
      	
      	//这里是操作DOM
          
      	}
      	componentUpdated(el,binding,vnode,oldVnode){//表示组件以及子组件发生更改时触发
          
      	}
      	update(el,binding,vnode,oldVnode,vnode,oldVnode){//表示元素以及子元素发生更改时触发
          
      	}
      	undind(el,binding,vnode){//解绑时触发,指令绑定的元素被删除
            //只调用一次,指令与元素解绑时调用。
          
      	}
      
	}
})


自定义过滤器(’|’)

​ 1. 过滤器用于格式化数据的一个封装函数

​ 特点:复用

​ 常见的过滤器: 时间,小数位数,货币符号, 大小写,对图片url进行格式化

​ 2.定义形式

全局定义

​ Vue.filter ( 过滤器名称, 过滤器回调函数 )

局部定义

​ filters 选项

<div id="app">
	<div>
      <h3> {{ money | currencyFilter('¥') }} </h3>
    </div>
</div>

//全局定义
Vue.filter('currencyFilter',( val,type ) => {
	return type + val 
})
new Vue({
    el: '#app',
    data: {
      money: 2000,
    },
    methods: {
	},
    //局部定义
	filters:{
       currencyMoneyFilter ( val,type){
           return type + val 
       }
	}
  })

混入 minxin
  1. 作用: 将选项分离出去,单独管理

  2. 使用形式

    全局定义

    ​ Vue.mixin()

    局部定义

    ​ mixins

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值