过滤器filters

news/2024/11/6 9:39:53/文章来源:https://www.cnblogs.com/lmzzr24/p/18529288

在Vue项目中,src 文件夹下的 filter 文件夹通常用于存放全局过滤器(filters)。过滤器是一种在模板中对数据进行格式化处理的机制。Vue.js 提供了一种简洁的方式来定义和使用过滤器,可以在模板中直接应用于数据绑定和插值表达式。

过滤器的作用

过滤器主要用于对数据进行格式化处理,常见的用途包括:

  1. 日期格式化:将日期对象转换为特定格式的字符串。
  2. 文本格式化:将文本转换为大写、小写、首字母大写等。
  3. 数值格式化:将数值转换为货币格式、百分比格式等。
  4. 字符串截取:限制字符串长度,超出部分用省略号表示。

示例

假设你在 src/filter 文件夹中定义了一些过滤器,下面是一个简单的示例:

src/filter/index.js

// src/filter/index.js// 导入所有过滤器
import capitalize from './capitalize';
import currency from './currency';
import date from './date';
import limitText from './limitText';// 导出所有过滤器
export default {capitalize,currency,date,limitText
};

src/filter/capitalize.js

// src/filter/capitalize.jsexport default function capitalize(value) {if (!value) return '';return value.charAt(0).toUpperCase() + value.slice(1);
}

src/filter/currency.js

// src/filter/currency.jsexport default function currency(value) {if (!value) return '';return `$${value.toFixed(2)}`;
}

src/filter/date.js

// src/filter/date.jsexport default function date(value) {if (!value) return '';return new Date(value).toLocaleDateString();
}

src/filter/limitText.js

// src/filter/limitText.jsexport default function limitText(value, length) {if (!value) return '';return value.slice(0, length) + (value.length > length ? '...' : '');
}

注册过滤器

在 Vue 项目的入口文件(通常是 main.js)中注册这些过滤器:

src/main.js

import Vue from 'vue';
import App from './App.vue';
import filters from './filter';// 注册所有过滤器
Object.keys(filters).forEach(key => {Vue.filter(key, filters[key]);
});new Vue({render: h => h(App),
}).$mount('#app');

使用过滤器

在 Vue 组件的模板中使用过滤器:

src/components/ExampleComponent.vue

<template><div><p>原始文本:{{ message }}</p><p>首字母大写:{{ message | capitalize }}</p><p>货币格式:{{ price | currency }}</p><p>日期格式:{{ date | date }}</p><p>限制长度:{{ longText | limitText(10) }}</p></div>
</template><script>
export default {data() {return {message: 'hello world',price: 1234.56,date: '2023-10-01T00:00:00Z',longText: '这是一个很长的文本,需要被截断'};}
};
</script>

总结

src/filter 文件夹用于存放全局过滤器,这些过滤器可以在整个项目中复用,用于对数据进行格式化处理。通过在 main.js 中注册这些过滤器,你可以在任何组件的模板中方便地使用它们。这种方式不仅提高了代码的可读性和可维护性,还使得数据格式化逻辑更加集中和统一。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/827509.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

洛谷题单指南-二叉堆与树状数组-P2168 [NOI2015] 荷马史诗

原题链接:https://www.luogu.com.cn/problem/P2168 题意解读:把单次替换成k进制字符串,使得替换后文本内容最短,典型的哈夫曼编码应用。 解题思路: 要把单词转成k进制字符串,根据哈夫曼编码的原理,可以依次将k个出现次数最少的单词进行合并,最后得到一棵树,每个非叶节…

.Net Core NPOI 导出多级表头

想要导出这样的表格 数据准备格式附上源码1 using NPOI.HSSF.UserModel;2 using NPOI.SS.UserModel;3 using NPOI.SS.Util;4 using System.Data;5 using System.Text.RegularExpressions;6 7 namespace TestConsoleApp8 {9 /// <summary>10 /// 导出Excel11 …

Nacos原理汇总

今天就应某位小伙伴的要求,来讲一讲Nacos作为服务注册中心底层的实现原理不知你是否跟我一样,在使用Nacos时有以下几点疑问:临时实例和永久实例是什么?有什么区别? 服务实例是如何注册到服务端的? 服务实例和服务端之间是如何保活的? 服务订阅是如何实现的? 集群间数据…

人工智能模型训练中的数据之美——探索TFRecord

上一篇:《构建人工智能模型基础:TFDS和Keras的完美搭配》 序言:在人工智能模型的训练过程中,如何高效管理和处理大量数据是一个重要的课题。TensorFlow 的 TFRecord 格式为大规模数据存储和处理提供了一种灵活且高效的解决方案。在本节知识中,我们将介绍如何利用 TFRecord…

教师提前批试讲-注意事项

教师提前批试讲-注意事项

大白菜装系统

在平时工作中,作为程序员,最苦逼的是公司的电脑坏了,都找你。我想说我是程序员,不是修电脑的,但是架不住小姐姐的热情,还是做了。 装系统流程: 第一步:前期准备 1、使用【大白菜】制作U盘启动盘。 2、查询机型的U盘启动快捷键。 3、准备一个ISO/GHO镜像。 第二步:插入…

实验11:装饰模式

本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解装饰模式的动机,掌握该模式的结构; 2、能够利用装饰模式解决实际问题。[实验任务一]:手机功能的升级用装饰模式模拟手机功能的升级过程:简单的手机(SimplePhone)在接收来电时,会发出声音提醒主人;而Ja…

Pbootcms网站,从Apache切换为Nginx后网站打不开

打开网站设置登录宝塔面板。 选择需要配置的网站,点击“设置”。进入伪静态设置在网站设置页面中,找到并点击“伪静态”选项卡。添加Nginx伪静态规则在伪静态设置中,清空原有规则或选择自定义规则。 输入以下Nginx伪静态规则:location / {if (!-e $request_filename){rewri…

2024/11/06

软件设计 实验10:组合模式 用透明组合模式实现教材中的“文件夹浏览”这个例子。 类图 public abstract class AbstractFile {public abstract void add(AbstractFile element);public abstract void remove(AbstractFile element);public abstract void display(int depth); …

SQLSTATE[HY000] [1045] Access denied for user ‘root‘@‘localhost‘ (using password: YES)

错误解析错误代码:SQLSTATE[HY000] [1045] 错误信息:Access denied for user ‘root’@‘localhost’ (using password: YES)可能的原因密码错误:提供的密码与数据库中存储的密码不匹配。 用户权限问题:用户root可能没有从localhost访问数据库的权限。 配置文件问题:MySQL…

帝国CMS更改域名后信息地址中的域名不变解决方法

修改系统参数设置进入“系统参数设置 - 基本属性 - 网站地址”,设置为 /。 不要填写具体的域名,以避免信息地址变成绝对地址。更新信息页地址进入“系统 - 数据更新 - 更新信息页地址”,选择相应的数据表,点击“扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年…

帝国CMS系统后台批量删除不带标题图片信息

执行SQL语句删除不带标题图片的信息:delete from [表前缀]_ecms_news where titlepic = ; delete from [表前缀]_ecms_news_index where id not in (select id from [表前缀]_ecms_news); delete from [表前缀]_ecms_news_data_1 where id not in (select id from [表前缀]_ec…