Vue 过滤器 filter

简介: Vue 过滤器 filter

过滤器用于 对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理)。

Vue 中已经移除了过滤器,可以使用计算属性代替。所以本章节了解即可。

在 BootCDN 开源网站中下载 Day.js 日期处理插件:

接下来我们要做一个时间戳转换日期的示例,借助 day.js 插件更方便一些。

BootCDN网址:[https://www.bootcdn.cn/]

BootCDN中有很多开源插件,在这只是用 day.js 举例,其他插件的使用方法都一样。

 

首先复制第一个链接:

 

在网页中打开链接,鼠标右键点击另存为,将文件存到项目目录中使用。

 

打卡 GitHub 仓库查看使用方法:

 

选择简体中文,下滑查看使用方法:

 

在项目中引入 day.js 日期处理插件:

 

然后 用计算属性实现日期显示:

<div id="APP">
  <p>现在是:{{fmtTime}}</p>
</div>
const vm = new Vue({
  el: "#APP",
  data(){
    return {
      time: 1674540823451
    }
  },
  computed:{
    fmtTime(){
      return dayjs(this.time).format('YYYY-MM-DD HH:mm:ss');
    }
  }
});

备:dayjs 是 day.js 插件中提供的方法,如果不传递参数,默认转换当前时间。format 方法用于指定显示格式。

 

局部过滤器实现:

<div id="APP">
  <p>现在是:{{time | timeFormater}}</p>
</div>

过滤器使用格式:{{ 原始数据 | 过滤方法 }}

const vm = new Vue({
  el: "#APP",
  data(){
    return {
      time: 1674540823451
    }
  },
  filters:{
    timeFormater(value){
      return dayjs(value).format('YYYY-MM-DD HH:mm:ss');
    }
  }
});

备:过滤方法需要在 filters 中定义,自动将原始数据作为参数传入方法中,定义 value 接收即可使用。

 

过滤器传参:

<div id="APP">
  <p>现在是:{{time | timeFormater('YYYY-MM-DD')}}</p>
</div>

过滤方法可以传递参数,格式:{{ 原始数据 | 过滤方法(参数1,参数2) }}

const vm = new Vue({
  el: "#APP",
  data(){
    return {
      time: 1674540823451
    }
  },
  filters:{
    timeFormater(value,str){
      return dayjs(value).format(str);
    }
  }
});

:接收参数时,第一个永远是原始数据。

使用多个过滤器:

<div id="APP">
  <p>现在是:{{time | timeFormater | mySlice}}</p>
</div>
const vm = new Vue({
  el: "#APP",
  data(){
    return {
      time: 1674540823451
    }
  },
  filters:{
    timeFormater(value){
      return dayjs(value).format('YYYY-MM-DD HH:mm:ss');
    },
    mySlice(value){
      return value.slice(0,4);
    }
  }
});

:过滤器是可以使用多个的,后一个过滤方法的 value 就是前一个过滤的结果。

 

绑定属性时使用过滤器:

<div id="APP">
  <p :data="time | timeFormater" >现在是:{{time | timeFormater}}</p>
</div>
const vm = new Vue({
  el: "#APP",
  data(){
    return {
      time: 1674540823451
    }
  },
  filters:{
    timeFormater(value){
      return dayjs(value).format('YYYY-MM-DD HH:mm:ss');
    }
  }
});

:在 v-bind 绑定属性时,也可以使用过滤器,语法一致。

 

使用全局过滤器实现:

<div id="APP">
  <p>现在是:{{time | timeFormater | mySlice}}</p>
</div>
// 全局过滤器语法格式:Vue.filter(方法名, 回调函数);
Vue.filter('mySlice',function(value){
  return value.slice(0,4);
})
const vm = new Vue({
  el: "#APP",
  data(){
    return {
      time: 1674540823451
    }
  },
  filters:{
    timeFormater(value){
      return dayjs(value).format('YYYY-MM-DD HH:mm:ss');
    }
  }
});

:全局过滤器一般用于组件式开发中,它可以在任意一个 Vue 实例中使用。

 

原创作者:吴小糖

创作时间:2023.3.22

相关文章
|
25天前
|
JavaScript API 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
27天前
|
JavaScript 前端开发 开发者
vue 数据驱动视图
总之,Vue 数据驱动视图是一种先进的理念和技术,它为前端开发带来了巨大的便利和优势。通过理解和应用这一特性,开发者能够构建出更加动态、高效、用户体验良好的前端应用。在不断发展的前端领域中,数据驱动视图将继续发挥重要作用,推动着应用界面的不断创新和进化。
|
1天前
|
JavaScript 关系型数据库 MySQL
基于VUE的校园二手交易平台系统设计与实现毕业设计论文模板
基于Vue的校园二手交易平台是一款专为校园用户设计的在线交易系统,提供简洁高效、安全可靠的二手商品买卖环境。平台利用Vue框架的响应式数据绑定和组件化特性,实现用户友好的界面,方便商品浏览、发布与管理。该系统采用Node.js、MySQL及B/S架构,确保稳定性和多功能模块设计,涵盖管理员和用户功能模块,促进物品循环使用,降低开销,提升环保意识,助力绿色校园文化建设。
|
25天前
|
JavaScript 前端开发 开发者
Vue是如何劫持响应式对象的
Vue是如何劫持响应式对象的
22 1
|
25天前
|
JavaScript 前端开发 API
介绍一下Vue中的响应式原理
介绍一下Vue中的响应式原理
27 1
|
25天前
|
JavaScript 前端开发 开发者
Vue是如何进行组件化的
Vue是如何进行组件化的
|
25天前
|
存储 JavaScript 前端开发
介绍一下Vue的核心功能
介绍一下Vue的核心功能
|
28天前
|
JavaScript 前端开发 开发者
vue学习第一章
欢迎来到我的博客!我是瑞雨溪,一名热爱前端的大一学生,专注于JavaScript与Vue,正向全栈进发。博客分享Vue学习心得、命令式与声明式编程对比、列表展示及计数器案例等。关注我,持续更新中!🎉🎉🎉
32 1
vue学习第一章
|
28天前
|
JavaScript 前端开发 索引
vue学习第三章
欢迎来到瑞雨溪的博客,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中的v-bind指令,包括基本使用、动态绑定class及style等,希望能为你的前端学习之路提供帮助。持续关注,更多精彩内容即将呈现!🎉🎉🎉
26 1
vue学习第三章
|
28天前
|
缓存 JavaScript 前端开发
vue学习第四章
欢迎来到我的博客!我是瑞雨溪,一名热爱JavaScript与Vue的大一学生。本文介绍了Vue中计算属性的基本与复杂使用、setter/getter、与methods的对比及与侦听器的总结。如果你觉得有用,请关注我,将持续更新更多优质内容!🎉🎉🎉
35 1
vue学习第四章