12 VUE基础:过滤器

Vue允许你自定义过滤器,可被用于一些常见的文本格式化。过滤器可以用在两个地方:双花括号插值和 v-bind 表达式 (后者从 2.1.0+ 开始支持)。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”符号指示。

<!-- 在双花括号中 -->
{{ message | capitalize }}<!-- 在 `v-bind` 中 -->
<div v-bind:id="rawId | formatId"></div>

你可以在一个组件的选项中定义本地的过滤器:

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

或者在创建 Vue 实例之前全局定义过滤器:

Vue.filter('capitalize', function (value) {if (!value) return ''value = value.toString()return value.charAt(0).toUpperCase() + value.slice(1)
})new Vue({// ...
})

当全局过滤器和局部过滤器重名时,会采用局部过滤器。

过滤器函数总接收表达式的值 (之前的操作链的结果) 作为第一个参数。在上述例子中,capitalize 过滤器函数将会收到 message 的值作为第一个参数。

过滤器可以串联:

{{ message | filterA | filterB }}

在这个例子中,filterA 被定义为接收单个参数的过滤器函数,表达式 message 的值将作为参数传入到函数中。然后继续调用同样被定义为接收单个参数的过滤器函数 filterB,将 filterA 的结果传递到 filterB 中。

过滤器是 JavaScript 函数,因此可以接收参数:

{{ message | filterA('arg1', arg2) }}

这里,filterA 被定义为接收三个参数的过滤器函数。其中 message 的值作为第一个参数,普通字符串 'arg1' 作为第二个参数,表达式 arg2 的值作为第三个参数。

12.1 引入第三方库作为过滤器的助攻

Moment.js 是一个 JavaScript 日期处理类库,用于解析、检验、操作、以及显示日期。上面的例子中我们引入第三方库,看看怎么使用。

  • 引入对应的JS文件

  • 自定义过滤器

  • 使用Moment的格式化函数

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>VUE之过滤器</title></head><body><div id="app"><h2>显示格式化的日期时间</h2><p>默认显示:{{showTime}}</p><p>最完整的: {{showTime | formatDateLocal}}</p><p>Moment格式化年月日: {{showTime | dateFormatS()}}</p></div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><script type="text/javascript" src="https://cdn.bootcss.com/moment.js/2.21.0/moment.js"></script><script type="text/javascript">// 定义过滤器Vue.filter('dateFormatS', function (value, format='YYYY-MM-DD HH:mm:ss') {return moment(value).format(format);})const vm = new Vue({el: "#app",data: {showTime: new Date()},filters: {formatDateLocal(strDate){// 进行日期格式转换let date = new Date(strDate);let y = date.getFullYear();let MM = date.getMonth() + 1;MM = MM < 10 ? ('0' + MM) : MM;let d = date.getDate();d = d < 10 ? ('0' + d) : d;let h = date.getHours();h = h < 10 ? ('0' + h) : h;let m = date.getMinutes();m = m < 10 ? ('0' + m) : m;let s = date.getSeconds();s = s < 10 ? ('0' + s) : s;return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s;}}})</script></body>
</html>

【猿说VUE】Vue过滤器使用介绍(劳动节致敬)相关推荐

  1. vue使用,及指令介绍,计算属性/过滤器

    目录 Vue是什么 vue的单页面原理 Vue的使用 指令介绍: v-if和 v-show的区别 v-on 事件绑定: v-bind 绑定属性 处理数组绑定 v-model双向数据绑定 created ...

  2. vue filters过滤器与字典项

    vue filters过滤器与字典项 功能介绍: 大致需求: 具体实现: 一.过滤器js文件: 二.引入并使用: 功能介绍: 在项目开发中,会遇到后台返回值为数字.字母等格式数据,具体显示则需根据字典 ...

  3. 基于Vue的Quasar Framework 介绍 这个框架UI组件很全面

    基于Vue的Quasar Framework 介绍 这个框架UI组件很全面 基于Vue的Quasar Framework 中文网 http://www.quasarchs.com/ quasarfra ...

  4. methods vue 使用过滤器_Vue.js中过滤器(filter)的使用

    Vue.js 过滤器的基本使用(filter) vue中的过滤器分为两种:局部过滤器和全局过滤器 1.定义无参全局过滤器 Vue.filter('msgFormat', function(msg) { ...

  5. vue+filter过滤器(多参数)传参 - 代码篇

    vue+filter过滤器(多参数)传参 - 代码篇 传1个参数 //html {{a1 | filterAa}} //js filters:{filterAa(a1){// a1是传入的参数} } ...

  6. Vue的过滤器,生命周期的钩子函数和使用Vue-router

    一.过滤器 1.局部过滤器 在当前组件内部使用过滤器 给某些数据 添油加醋 //声明 filters:{'过滤器的名字':function(val,a,b){//a 就是alax ,val就是当前的数 ...

  7. vue 简介 (MVVM介绍,超详细)

    目录 vue 简介 1. 什么是 vue 1.1 解读核心关键词:构建用户界面 1.2 构建用户界面的传统方式 1.3 使用 vue 构建用户界面 1.4 解读核心关键词:框架 1.5 总结:什么是 ...

  8. vue中过滤器filters的this指向问题。

    今天在完成一个时间戳转化时想试试vue的过滤器filters,代码如下: execute_time(time) {if (time === 0) return '/'else return this. ...

  9. methods vue过滤器 和_Vue 2.0的学习笔记:Vue的过滤器

    在这篇文章里,我们将讨论一个叫过滤器的东西.过滤器提供了一种执行文本转换的方法,比如说都转成大写字母或者几乎做任何我们想做的事情.过滤器既可以在文本插值中使用,也可以在v-bind指令的表达式中使用. ...

最新文章

  1. 波士顿动力机器狗半夜遛弯儿惊呆路人,还配合拍照,网友:想到了《黑镜》...
  2. 如何开启Windows 10隐藏的锁屏时间设置项
  3. 逻辑回归模型详解(Logistic Regression)
  4. 将Notepad++配置成Java轻量级的IDE
  5. Markdown写作入门
  6. python中yaml模块的使用_详解Python yaml模块
  7. PTA--03-树2 List Leaves
  8. Oracle 9i安装时没有找到OCS4J.properties 解决办法
  9. erp框架 saas_2020管理软件:分析saas系统与erp系统之间的区别
  10. UE4特效系列笔记①
  11. Linux下 文件或文件夹的复制(拷贝 cp)
  12. win7计算机不在桌面了,怎么办Win7系统开机后不显示桌面
  13. 关于stm32单片机的通讯方式
  14. 【初学者入门C语言】之习题篇(一)
  15. Jenkins使用时,报No valid crumb was included in the request的解决方法
  16. 陌陌八成营收靠直播 直播行业已进入两极分化
  17. DQN笔记:高估问题 target network Double DQN
  18. 万能码,你的启明星(安全扫码专业委员会)
  19. IBM SPSS的Sav文件读/写
  20. 新增网络与信息安全​专硕!优秀双非重庆邮电大学

热门文章

  1. 2022-2027年中国科技地产行业发展监测及投资战略研究报告
  2. 跨境电商APP解决方案
  3. 数独问题每行每列每3X3
  4. solr定时实时重建索引和增量更新——sxt
  5. php 汉王云名片_风吹雨名片互赞系统PHP程序
  6. 【内网渗透】域横向PTHPTKPTT哈希票据传递
  7. python 转换数字为中文的大写
  8. 无法出现 Bandizip 的右键菜单
  9. Python:nii格式的核磁共振图像(MRI)的读取、处理、显示操作(以缩放操作举例)
  10. 我的世界java村民繁殖_教程/村民养殖 - Minecraft Wiki,最详细的官方我的世界百科...