Vue过滤器的几种用法

28 篇文章 7 订阅
22 篇文章 7 订阅

Vue过滤器的几种用法

本文主要介绍Vue项目中filter的几种用法。

一. 单独在组件或者是页面中使用

单独在页面或者是组件中使用vue filter比较简单,主要是用在{{ }} 和v-bind指令中。
简单的代码示例如下:

<!-- 在代码中使用 -->
<view v-bind:value = "val|getVal">{{val|getVal}}</view>
/* 在vue实例中添加filter */
filters:{
	getVal(val){          // val 即是表达式 {{val|getVal}} 中的变量val
		return val+"abc"  // 这里返回想要的格式 
	}
}

二.全局注册filter

在vue项目或者是Uni-APP下全局注册vue filter 只需在main.js 中进行全局filter 声明。

Vue.filter('filterName', function (value) {
  return value.toUpperCase();
})

上述方法每新增一个过滤器就需要在main.js中进行全局注册,使用起来不是很方便。最好是将所有的过滤器放到一个独立的js文件中。比如新建一个文件夹filters,新建一个filters.js文件。将所有的过滤器都放置在该文件下,并通过exports导出。像下面这样:

const filters={
	getZYLevel : (val)=>{
		switch (val){
			case 1: return '一级';break;
			case 2: return '二级';break;
			case 3: return '三级';break;
			default: return '';break;
		}
	},
	getZYType : (val)=>{
		switch (val){
			case 1: return '风';break;
			case 2: return '火';break;
			case 3: return '山';break;
			case 4: return '林';break;
			default: return '';break;
		}
	},
	getApproveResult : (val) => {
		switch (val){
			case 0: return '待审核';break;
			case 1: return '同意';break;
			case 2: return '退回';break;
			case 3: return '否决';break;
			default: return '待审核';break;
		}
	}
}

export  {filters}

此时在main.js中引入filters.js文件,对该文件下的所有过滤器统一注册,这样以后新增过滤器时只需要将过滤器添加在filters.js中,无需每次都去main.js中注册。同时也方便过滤器的统一管理和修改。

/* main.js中全局注册过滤器 */
import {filters} from '@/common/filters/filters.js';
Object.keys(filters).forEach(item => Vue.filter(item,filters[item]));

三. filter可传递自定义参数

例如

<!-- 在代码中使用 -->
<view>{{val1|getVal(10,12)}}</view>

<!-- val1默认是第一个参数,后续添加的10,12为第二个参数,第三个参数 -->
filters:{
	getVal(val1,val2,val3){     // val1 即是表达式 {{val1|getVal(10,12)}}中的变量val1,val2=10,val3 =12
		return val1+val2+val3  // 这里返回想要的格式 
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mingyong.g

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值