当前位置: 首页 > news >正文

Vue:filters过滤器

        日期、时间格式化是Vue前端项目中较为常遇到的一个需求点,此处,围绕Vue的过滤器来介绍如何更为优雅的解决此类需求。

过滤器filters使用注意点

        Vue允许开发者自定义过滤器,可以实现一些常见的文本格式化等需求。

        使用时要注意的点在于:过滤器可使用在两个地方——①双花括号插值表达式;②v-bind表达式。另一个是过滤器书写的位置:应在JavaScript表达式的尾部,并且使用管道符与表达式进行分割开来

        例如:假定我们已经定义了一个过滤器,名称为:dateTimeFormat,用于日期时间的格式化操作,那么在使用时的书写方式如下,

 

<div class="left">{{ JavaScript表达式 | dateTimeFormat  }}</div>

        显示的效果如下,

过滤器filters的两种定义方式

        接下里我们看一下过滤器的定义方式,Vue.js官网文档提供了两种方式,

方式1:局部定义

        局部定义类似于组件的局部注册操作,只能在当前组件内部使用。

        以下我们对上面提到的dateTimeFormat过滤器进行定义,这里要使用到一个第三方库moment.js,安装方式如下,

npm install moment -S

        安装之后直接在局部组件中引入即可。

import moment from 'moment'

        接着,我们开始定义过滤器dateTimeFormat,完整的示例代码如下,

<template><div class="left">{{ currentDate | dateTimeFormat  }}</div>
</template>
<script>
import moment from 'moment'
export default {name: "Top",props: {},filters: {dateTimeFormat: function (value, pattern = 'YYYY-MM-DD HH:mm:ss') {return moment(value).format(pattern);}},data() {return {timerHandler: -1,currentDate: null,}},computed: {title() {return process.env.VUE_APP_TITLE;},moduleName() {return this.$store.state.module_name;},},mounted() {this.getCurrentDate();this.setTimter();},methods: {setTimter() {this.timerHandler = setInterval(() => {this.getCurrentDate();}, 1000);},getCurrentDate() {this.currentDate = Date.now();}},beforeUpdate() {},beforeDestroy() {clearInterval(this.timerHandler);}
}
</script>
<style lang="less" scoped>
</style>

方式2:全局定义

        接着,我们看一下如何进行全局的过滤器定义,

/** @Description: * @Author: Xwd* @Date: 2023-02-15 22:26:06* @LastEditors: Xwd* @LastEditTime: 2023-02-18 14:53:58*/
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
import moment from 'moment'
Vue.config.productionTip = false//定义全局过滤器
Vue.filter("dateTimeFormat",(value,pattern='YYYY-MM-DD HH:mm:ss')=>{return moment(value).format(pattern);
})new Vue({router,store,render: h => h(App)
}).$mount('#app')

        最终效果是一致的,不同之处在于,全局定义的过滤器可以在项目中的任何组件中进行使用。

 

http://www.lryc.cn/news/11147.html

相关文章:

  • Windows环境下安装和配置Gradle
  • 数据结构时间空间复杂度笔记
  • 基于注意力的知识蒸馏Attention Transfer原理与代码解析
  • 利尔达在北交所上市:总市值突破29亿元,叶文光为董事长
  • C#操作字符串方法 [万余字总结 · 详细]
  • 极兔一面:10亿级ES海量搜索狂飙10倍,该怎么办?
  • 【Mysql基础 —— SQL语句(一)】
  • 华为OD机试 - 新员工座位安排系统(Python) | 机试题算法思路
  • MySQL - 介绍
  • ChatGPT国内镜像站初体验:聊天、Python代码生成等
  • SAP数据导入工具(LSMW) 超级详细教程(批量导入内部订单)
  • 第9天-商品服务(电商核心概念,属性分组开发及分类和品牌的级联更新)
  • 动漫人物眼睛画法
  • 张晨光-JAVA零基础保姆式JDBC技术教程
  • 华为OD机试 - 最多提取子串数目(Python)
  • LeetCode-1237. 找出给定方程的正整数解【双指针,二分查找】
  • 广度优先搜索算法 - 迷宫找路
  • 泡脚材料简记
  • 【计算机网络】因特网概述
  • STC单片机 VS/HX1838红外接收和发送实验
  • 前端开发常用案例(一)
  • Linux 日志查找常用命令
  • CleanMyMac4.12.5最新版安装下载教程
  • RFID射频识别技术(四) RFID高频电路基础|课堂笔记|10月11日
  • 数据库系统是什么?它由哪几部分组成?
  • 华为OD机试题 - 任务混部(JavaScript)
  • 键盘输入a,到屏幕显示,操作系统做了什么
  • Python机器学习入门笔记(2)—— 分类算法
  • Docker镜像发布到阿里云和私有库
  • 初识CSS,美化HTML