过滤器是Vue.js允许我们将格式和转换应用于模板插值中使用的值的方式。
过滤器是Vue组件提供的功能,可让您将格式和转换应用于模板动态数据的任何部分。
它们不更改组件数据或任何内容,而仅影响输出。
假设您正在打印名称:
<template>
<p>Hi {{ name }}!</p>
</template>
<script>
export default {
data() {
return {
name: ‘Flavio’
}
}
}
</script>
如果您要检查该怎么办name
实际包含一个值,如果不显示,则模板将显示“ Hi there!”?
输入过滤器:
<template>
<p>Hi {{ name | fallback }}!</p>
</template>
<script>
export default {
data() {
return {
name: ‘Flavio’
}
},
filters: {
fallback: function(name) {
return name ? name : ‘there’
}
}
}
</script>
请注意应用过滤器的语法,即| filterName
。如果您熟悉Unix,那就是Unix管道运算符,该运算符用于将操作的输出作为输入传递给下一个操作。
这filters
组件的属性是一个对象。单个过滤器是一个接受一个值并返回另一个值的函数。
返回的值是Vue.js模板中实际打印的值。
过滤器当然可以访问组件数据和方法。
过滤器的好用例是什么?
- 转换字符串,例如,大写或将其小写
- 格式化价格
在上方,您看到了一个简单的过滤器示例:{{ name | fallback }}
。
通过重复管道语法,可以链接过滤器:
{{ name | fallback | capitalize }}
这首先适用于fallback
过滤,然后capitalize
过滤器(我们尚未定义,但请尝试创建一个!)。
高级过滤器还可以使用常规函数参数语法接受参数:
<template>
<p>Hello {{ name | prepend('Dr.') }}</p>
</template>
<script>
export default {
data() {
return {
name: ‘House’
}
},
filters: {
prepend: (name, prefix) => {
return </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">prefix</span><span style="color:#e6db74">}</span><span style="color:#e6db74"> </span><span style="color:#e6db74">${</span><span style="color:#a6e22e">name</span><span style="color:#e6db74">}</span><span style="color:#e6db74">
}
}
}
</script>
如果您将参数传递给过滤器,则传递给过滤器功能的第一个参数始终是模板插值(name
(在这种情况下),然后是您传递的显式参数。
您可以通过使用逗号分隔多个参数来使用它们。
注意,我使用了箭头功能。我们通常避免在方法和计算属性中使用箭头函数,因为它们几乎总是引用this
来访问组件数据,但是在这种情况下,过滤器不需要访问它,而是通过参数接收它需要的所有数据,并且我们可以安全地使用更简单的arrow函数语法。
这个包有很多预制的过滤器供您直接在模板中使用,其中包括capitalize
,uppercase
,lowercase
,placeholder
,truncate
,currency
,pluralize
和更多。
免费下载我的Vue手册
更多vue教程:
- Vue.js概述
- Vue.js CLI:学习如何使用它
- Vue.js开发工具
- 为Vue开发配置VS代码
- 使用Vue.js创建您的第一个应用
- Vue.js单个文件组件
- Vue.js模板和插值
- Vue.js指令
- Vue.js方法
- Vue.js计算属性
- 使用CSS样式化Vue.js组件
- Vue.js观察者
- Vue方法vs观察者vs计算的属性
- Vue.js过滤器
- Vue.js组件
- Vue.js插槽
- Vue.js组件道具
- Vue.js活动
- Vue.js组件通信
- Vuex,Vue.js状态管理器
- Vue,在另一个组件内部使用一个组件
- Vue,如何使用prop作为类名
- 如何将SCSS与Vue.js单个文件组件一起使用
- 在Vue.js中使用Tailwind
- Vue路由器
- 动态显示Vue组件
- Vue.js备忘单
- 使用Vuex将Vue数据存储到localStorage
- 如何使用Vue动态应用类
- Vue,如何使用v模型
- Vue,为什么数据必须是函数
- Roadmap to become a Vue.js developer in 2020