Vue封装全局过滤器Filters的步骤
网络编程 2021-07-04 14:06www.168986.cn编程入门
这篇文章主要介绍了Vue封装全局过滤器Filters的步骤,通过封装vue全局过滤器实现filters的统一管理。感兴趣的朋友可以了解下
(PS本文代码在vue-cli3构建的基础vue项目之上进行编写vue create my-project)
在前后端分离的项目中,经常会有后台返回的数据需要经过处理才能显示到页面上的场景。
使用最多的场景就是日期/时间、数字、字符串的格式化处理,实际业务中可能还有更复杂的数据处理逻辑。
狼蚁网站SEO优化就拿封装全局的处理数字和字符串的 filter 来展示 vue 如何 封装全局filter 并统一处理。
一、定义/封装过滤器
在 src目录 下新建 filters目录 用来专门存放全局过滤器,如果项目的过滤器过多,那么就要按类型分类。
如果项目需要前台处理的数据不是太多,那么就在 filters目录 下新建一个 index.js 来存放所有的过滤器就足够了。
index.js代码如下
// 封装过滤器 // 过滤器的声明可以有下列多种写法 / Number formatting by unit like 10000 => 10k @param {number} num @param {number} digits @return {string} / function numberFormatter(num, digits) { const si = [ { value: 1e18, symbol: "E" }, { value: 1e15, symbol: "P" }, { value: 1e12, symbol: "T" }, { value: 1e9, symbol: "G" }, { value: 1e6, symbol: "M" }, { value: 1e3, symbol: "k" } ]; for (let i = 0; i < si.length; i++) { if (num >= si[i].value) { return (num / si[i].value + 0.1).toFixed(digits).replace(/\.0+$|(\.[0-9][1-9])0+$/, '$1') + si[i].symbol } } return num.toString(); } / Number formatting by thousand like 10000 => "10,000" @param {number} num @return {string} / const toThousandFilter = function(num) { return (+num || 0).toString().replace(/^-?\d+/g, m => m.replace(/(?=(?!\b)(\d{3})+$)/g, ',')) }; / Upper case first char like "wenyuan" => "Wenyuan" @param {string} string @return {string} / const uppercaseFirst = string => { return string.charAt(0).toUpperCase() + string.slice(1); }; export default { numberFormatter, toThousandFilter, uppercaseFirst };
二、注册过滤器
然后在 main.js 中引入注册即可使用
import filters from "./filters"; // global filters // register global utility filters Object.keys(filters).forEach(key => { Vue.filter(key, filters[key]); });
三、在组件内使用写好的过滤器
在组件中使用
<template> <div class="home"> <img alt="Vue logo" src="../assets/logo.png"/> <h1>score{{ score | numberFormatter }}</h1> <h1>score{{ score | toThousandFilter }}</h1> <h1>username{{ username | uppercaseFirst }}</h1> </div> </template> <script> export default { name: "home", ponents: {}, data() { return { score: 1200000, username: "wenyuan" }; } }; </script>
四、效果
五、可能的报错与注意点
在 main.js 中,要先定义过滤器, 再新建 vue 实例,否则会报Failed to resolve filter: xxx的错误。
以上就是Vue封装全局过滤器Filters的步骤的详细内容,更多关于vue封装过滤器的资料请关注狼蚁SEO其它相关文章!
上一篇:JavaScript中如何调用Java方法
下一篇:Vue父子组件传值的一些坑
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南