美文网首页
vue - 定义和使用过滤器filter

vue - 定义和使用过滤器filter

作者: dingFY | 来源:发表于2020-07-23 10:40 被阅读0次

一、过滤器的介绍

1、在Vue中使用过滤器(Filters)来渲染数据是一种很有趣的方式。

2、首先我们要知道,Vue中的过滤器不能替代Vue中的mehtods、computed、watch

3、过滤器不改变真正的data,而只是改变渲染的结果,并返回过滤后的版本。

4、在很多不同的情况下,过滤器都是有用的,比如尽可能保持API响应的干净,并在前端处理数据的格式。

5、在你希望避免重复和连接的情况下,它们也可以有效地封装成可重用代码块背后的所有逻辑。

6、在Vue 2.0中已经没有内置的过滤器了,我们可以自定义过滤器。

二、定义和使用过滤器

使用Vue,可以有两种不同的方式注册过滤器(全局过滤器和本地过滤器),你可以跨所有组件访问全局过滤器,而本地过滤器只允许你在其定义的组件内部使用。注意:当全局过滤器和局部过滤器重名时,会采用局部过滤器。

【1】全局过滤器

来看一个简单的示例,其作用是将单词第一个字母转成大写字母

    // 声明一个全局的过滤器
    Vue.filter('capitalize', function (value) {
        if (!value) return ''
        value = value.toString()
        return value.charAt(0).toUpperCase() + value.slice(1)
    })

【2】本地过滤器

本地过滤器存储在Vue组件中,作为filters属性中的函数。这个时候你想注册多少个就能注册多少个

filters: {
    capitalize: function (value) {
        if (!value) return ''
        value = value.toString()
        return value.charAt(0).toUpperCase() + value.slice(1)
    }
}

【3】过滤器的使用

过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。

过滤器函数总接收表达式的值 作为第一个参数。在下述例子中,capitalize过滤器函数将会收到name的值作为第一个参数,formaId过滤器函数将会收到rowId的值作为第一个参数。

<!-- 在双花括号中 -->
<h1>{{ name | capitalize }}</h1>

<!-- 在 `v-bind` 中 -->
<div v-bind:id="rowId | formatId"></div>

【4】hello通过capitalize过滤器后展示到页面的是Hello

三、过滤器串联

过滤器可以串联,使用管道(|)符号将多个过滤器进行串连,并通过这一系列过滤器转换成一个值。

在下面这个例子中,表达式name的值将作为参数传入到filterA函数中。然后继续调用过滤器函数filterB,将filterA的过滤结果作为参数传递到filterB中,最终得到过滤后的结果展示到h1标签元素

<h1>{{ name | filterA | filterB }}</h1>

让我们再看一个价格的例子,并让这个价格只保留两位小数,然后加上美元符号。

<div id="app">
    <h1>{{ price | toFixed(2) | toUSD}}</h1>
</div>

// 过滤器
filters: {
    toFixed: function (price, limit) {
        return price.toFixed(limit)
    },
    toUSD: function (price) {
        return `$${price}`
    }
}

四、添加参数

正如前面提到过的,过滤器可以根据你需要添加一些参数进来。Vue将被过滤的值作为第一个参数,后缀作为第二个和第三个参数。

下述例子中,toFixed 被定义为接收两个参数的过滤器函数。其中price的值作为第一个参数,limit作为第二个参数

<div id="app">
    <h1>{{ price | toFixed(2) }}</h1>
</div>

// 过滤器
filters: {
    toFixed: function (price, limit) {
        return price.toFixed(limit)
    },
}

文章每周持续更新,可以微信搜索「 前端大集锦 」第一时间阅读,回复【视频】【书籍】领取200G视频资料和30本PDF书籍资料

相关文章

  • Vue(2)

    过滤器Filter Vue可以自定义过滤器,可以在{{message}}和v-bind两处使用。 Filter的定...

  • AngularJS

    过滤器 自定义过滤器: filter的定义和js中的使用. 在html中使用, filter可以连续使用多个. {...

  • vue过滤器(filter)

    vue中可以自定义过滤器,用于{{插槽}}和v-bind表达式。 全局定义(1) 全局方法 Vue.filter(...

  • vue常用特性应用场景

    1 过滤器 Vue.filter 定义一个全局过滤器 2 自定义指令 让表单自动获取焦点 通过Vue.direc...

  • VUE02

    v-cloak ref monted Vue.directive()自定义指令 }) Vue.filter过滤器 ...

  • springboot集成shiro跨域问题

    使用过滤器 注册过滤器 shiro自定义filter中 如果使用Printwriter ServletOutpu...

  • vue 过滤器做字数限制并显示省略号

    定义过滤器 使用vue中的 过滤器filters

  • Vue-04

    过滤器:对显示在页面上的数据进行筛选 全局过滤器 和Vue同级 Vue.filter(“过滤器名称”,func...

  • 9.自定义vue全局过滤器

    1.Vue.filter('过滤器名字',过滤器函数):

  • vue - 定义和使用过滤器filter

    一、过滤器的介绍 1、在Vue中使用过滤器(Filters)来渲染数据是一种很有趣的方式。2、首先我们要知道,Vu...

网友评论

      本文标题:vue - 定义和使用过滤器filter

      本文链接:https://www.haomeiwen.com/subject/yvzynhtx.html