vue filters 是什么?怎么使用?

vue filters 是什么?怎么使用?vuefilters是什么?首先:filter翻译成中文是过滤器的意思。而在Vue中作用其实就是对字段进行预处理怎么使用呢?就用一个小Demo,讲解一下!目的:对字段进行处理,打印出“Helloworld!!!”首先,打印出“Helle”<template> <view> {{demo}} </view></template…

大家好,又见面了,我是你们的朋友全栈君。

vue filters 是什么?

首先:filter翻译成中文是过滤器的意思。
而在Vue中作用其实就是对字段进行预处理

怎么使用呢?

就用一个小Demo,讲解一下!
目的:对字段进行处理,打印出“Hello world!!!”
首先,打印出“Helle”

<template>
	<view>
		 {
  
  {demo}}
	</view>
</template>

<script>
	export default {
		data() {
			return {
				demo: 'Hello'
			}
		},
		onLoad() {

		},
		methods: {

		}
	}
</script>

<style>
	 
</style>

结果在页面上打印出了:
在这里插入图片描述
接下来,添加filters,把“world”添加上去:

filters:{
	sayHello(demo){
		return demo+" world!!!"
	}
},

最后调用filters方法:

{
  
  {demo | sayHello}}

页面上就打印出我们想要的“Hello world!!!”
在这里插入图片描述
实现很easy!

那么什么情况下会用到呢?

如果像demo这样使用,有点多此一举的感觉!!(确实)
实际项目中,常常会遇到这种array,如:

userArray: [
	{name:"张三",gender:1},
	{name:"李四",gender:2},
	{name:"王五",gender:0},
	{name:"赵六",gender:2}
]

这里的gender,需要按1:男,2:女,0:未知 显示在最终的页面上。
如果不用filters,需要循环处理下userArray:

页面代码:

<view v-for="(item,index) in userArray" v-bind:key="index">
	姓名:{
  
  {item.name}} 性别:{
  
  {item.gender}}
 </view>

js代码

this.userArray.forEach(item=>{
	switch(item.gender){
		case 0:
			item.gender = "未知"
			break
		case 1:
			item.gender = "男"
			break
		case 2:
			item.gender = "女"
			break
		default:
			item.gender = "未知"
			break
	}  
}) 

而用filters,这样处理:
页面代码:

<view v-for="(item,index) in userArray" v-bind:key="index">
			 姓名:{
  
  {item.name }} 性别:{
  
  {item.gender | genderZH}}
</view>

js代码:

filters:{
	genderZH(gender){
		switch(gender){
			case 0:
				gender = "未知"
				break
			case 1:
				gender = "男"
				break
			case 2:
				gender = "女"
				break
			default:
				gender = "未知"
				break
		} 
		return gender
	}
}

最终的效果:
在这里插入图片描述
好像这么做,区别也不是很大啊?
那么,如果现在有studentArray,teacherArray 两个array呢?或者更多呢?
如果不用filters,是不是有多少个array就得写多少个forEach方法
而用filters,多个array跟一个array是一样的。
这里就不示例了,感兴趣的可以自己动手写一写!
完整代码如下:

<template>
	<view>
		 <!-- 不用filters -->
		 <!-- <view v-for="(item,index) in userArray" v-bind:key="index">
			 姓名:{
  
  {item.name}} 性别:{
  
  {item.gender}}
		 </view> -->
		 <view v-for="(item,index) in userArray" v-bind:key="index">
		 			 姓名:{
  
  {item.name }} 性别:{
  
  {item.gender | genderZH}}
		 </view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				userArray: [
					{name:"张三",gender:1},
					{name:"李四",gender:2},
					{name:"王五",gender:0},
					{name:"赵六",gender:2}
				]
			}
		},
		filters:{
			genderZH(gender){
				switch(gender){
					case 0:
						gender = "未知"
						break
					case 1:
						gender = "男"
						break
					case 2:
						gender = "女"
						break
					default:
						gender = "未知"
						break
				} 
				return gender
			}
		},
		onLoad() {
			//不用filters
			// this.userArray.forEach(item=>{
			// 	switch(item.gender){
			// 		case 0:
			// 			item.gender = "未知"
			// 			break
			// 		case 1:
			// 			item.gender = "男"
			// 			break
			// 		case 2:
			// 			item.gender = "女"
			// 			break
			// 		default:
			// 			item.gender = "未知"
			// 			break
			// 	}  
			// }) 
		},
		methods: {

		}
	}
</script>

<style>
	 
</style>

end!!!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/143460.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号