前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue filters 是什么?怎么使用?

vue filters 是什么?怎么使用?

作者头像
全栈程序员站长
发布2022-08-31 11:06:52
3980
发布2022-08-31 11:06:52
举报

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

vue filters 是什么?

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

怎么使用呢?

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

代码语言:javascript
复制
<template>
	<view>
		 {
  
  {demo}}
	</view>
</template>

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

		},
		methods: {

		}
	}
</script>

<style>
	 
</style>

结果在页面上打印出了:

在这里插入图片描述
在这里插入图片描述

接下来,添加filters,把“world”添加上去:

代码语言:javascript
复制
filters:{
	sayHello(demo){
		return demo+" world!!!"
	}
},

最后调用filters方法:

代码语言:javascript
复制
{
  
  {demo | sayHello}}

页面上就打印出我们想要的“Hello world!!!”

在这里插入图片描述
在这里插入图片描述

实现很easy!

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

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

代码语言:javascript
复制
userArray: [
	{name:"张三",gender:1},
	{name:"李四",gender:2},
	{name:"王五",gender:0},
	{name:"赵六",gender:2}
]

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

页面代码:

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

js代码

代码语言:javascript
复制
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,这样处理: 页面代码:

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

js代码:

代码语言:javascript
复制
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是一样的。 这里就不示例了,感兴趣的可以自己动手写一写! 完整代码如下:

代码语言:javascript
复制
<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!!!

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • vue filters 是什么?
  • 怎么使用呢?
  • 那么什么情况下会用到呢?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档