Vue-过滤器

本文详细介绍了Vue.js中的过滤器概念,包括局部和全局过滤器的区别,以及如何实现日期格式转换。通过Day.js库,展示了如何创建和使用过滤器,以及过滤器的串联功能和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、定义

过滤器:对要显示的数据进行特定格式化后再显示(用于一些简单的逻辑处理,例如可以将日期格式改为正常格式)

二、语法

1.注册过滤器

过滤器本质上是一个局部过滤器,一个vm实例只能用它自己注册的过滤器,其它的vm实例并不能用,但是可以注册全局过滤器供所有的vm实例使用,所以就分为全局过滤器和局部过滤器

  1. 全局过滤器:Vue.filter(name,callback)
  2. 局部过滤器:new Vue({filters:{}})

2.使用过滤器

  1. {{xxx | 过滤器名}}
  2. v-bind:属性 = ” xxx | 过滤器名“

 三、过滤器实现日期格式举例

首先我们引入Day.js(Day.js 是一个轻量的处理时间和日期的 JavaScript 库https://cdn.bootcdn.net/ajax/libs/dayjs/1.11.9/dayjs.min.js

运用管道方法实现过滤器,如下图所示,过滤器名为timeFormater,属性名字是time表示当前时间的时间戳,其实过滤器名的名字timeFormater实质上就是一个函数,而time就是这个函数的参数

在vm之中写下包裹过滤器的容器filters

val实质上就是上面的传过来的参数time,接着运用dayjs的语法dayjs(值).format('YYYY年MM月DD日 HH:MM:ss)'对时间戳进行标准化,将返回值返回给timeFormater,重新解析模板,替换插值语法中的内容

或者在外部写一个全局过滤器也可以实现

效果

四、过滤器的串联

过滤器也可以接收额外参数,多个过滤器也可以串联,

例如:下面的timeFormater具有两个参数,而且和Myslice过滤器是串联关系,当timeFormater过滤器返回值后,将返回的值作为参数传给Myslice函数

效果

五、过滤器注意点

  1. 要定义到filter节点上,本质是一个函数
  2. 在过滤器函数中,一定要有return值
  3. 在过滤器的形参中,就可以获取到管道符前面待处理的那个值
  4. 如果全局过滤器和局部过滤器名字一致,按照“就近原则”调用的是局部过滤器
### Ruoyi-Vue过滤器的使用方法与实现方式 在 `Ruoyi-Vue` 项目中,过滤器主要用于数据展示前的数据转换操作。Vue.js过滤器可以用于模板表达式和 v-bind 表达式的管道语法来调用。 #### Vue.js 过滤器基础概念 Vue 提供了一种非常方便的方式来定义和使用自定义过滤器[^1]: - **局部注册**:可以在组件选项内通过 filters 属性进行局部注册。 - **全局注册**:可以通过 Vue.filter 方法进行全局注册。 #### 定义过滤器 下面是一个简单的日期格式化过滤器的例子: ```javascript // 全局过滤器 Vue.filter('formatDate', function (value) { if (!value) return ''; const date = new Date(value); return `${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}`; }); ``` 对于更复杂的逻辑,则建议创建独立的方法或引入第三方库来进行处理。 #### 组件内部使用过滤器过滤器被定义好之后,在模板中的应用就变得十分简单了。只需要在双花括号绑定后面加上竖线以及过滤器名称即可完成调用: ```html <p>发布时间: {{ article.publishTime | formatDate }}</p> ``` 如果是在 `v-bind` 指令上使用的话则需要用冒号加圆括号包裹起来的形式书写: ```html <img :src="imagePath | imageUrlFilter"> ``` 需要注意的是,从 Vue 3 开始官方已经移除了对内置过滤器的支持,推荐开发者们采用计算属性(computed properties),或是直接编写辅助函数(methods/functions) 来替代原有功能[^2]。 #### 结合 Spring Security 和 RuoYi 后端框架下的安全过滤器链设计思路 考虑到前后端分离架构下前端无法单独承担起所有的鉴权职责,因此通常会配合后端的安全模块一起工作。RuoYi 后端采用了基于 Spring Security 构建的一套完整的权限管理体系,其核心在于一系列精心编排好的 Filter 链条。这些 Filters 负责拦截请求并执行必要的认证授权流程,从而确保只有合法用户才能访问受保护资源。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值