vue通过过滤器实现数据格式化

下面就是vue通过过滤器实现数据格式化的完整攻略:

1. 什么是vue过滤器

在vue中,过滤器(Filter)是一种可复用的方法来格式化文本。它可以像管道一样在文本插值和v-bind表达式中使用。

2. 过滤器的语法

Vue.js 允许你自定义过滤器,被用作一些常见的文本格式化。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道”字符指示:

<!-- 在双花括号中使用 -->
{{ message | capitalize }}

<!-- 在 v-bind 中使用 -->
<div v-bind:id="rawId | formatId"></div>

上面的例子中,capitalize和formatId都是在JavaScript属性访问语法中使用的过滤器函数。该函数接收表达式的值作为其第一个参数:

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

Vue.filter('formatId', function (rawId) {
  return 'id-' + rawId
})

3. 示例说明

示例1:时间格式化

我们可以使用过滤器来格式化日期时间,在template中使用为:

<!--原格式: Sat Jan 01 2022 00:00:00 GMT+0800 (Central European Standard Time)-->
<p>发布时间:{{date | formatDate}}</p>

上面的代码中,我们使用了日志的 createdAt 毫秒数作为date数据,在模板里直接输出不太好看,于是我们使用了一个 formatDate 过滤器来将毫秒数格式化为更友好的时间展示:

Vue.filter('formatDate', function (time) {
  let date = new Date(time);
  let year = date.getFullYear();
  let month = date.getMonth() + 1;
  let day = date.getDate();
  let hour = date.getHours();
  let minute = date.getMinutes();
  let second = date.getSeconds();
  return year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
})

示例2:金额格式化

我们也可以使用过滤器来处理金额显示,以9999为例,通过过滤器格式化为9,999,在template模板中使用如下:

<!--原格式: 9999-->
<p>金额:{{money | toCurrency}}</p>

上面的代码中,我们使用到了 money 这一变量,在模板里直接输出不太友好,于是我们使用了一个 toCurrency 过滤器来将金额数改成按千位分隔符显示,格式化为“9,999”:

Vue.filter('toCurrency', function (money) {
    return Number(money).toFixed(2).replace(/\d(?=(\d{3})+\.)/g, '$&,');
})

上面的过滤器先通过toFixed方法让数据保留2位小数,再使用正则表达式,将数字每隔三位添加一个逗号,最后将格式化后的数值返回。

以上就是通过vue过滤器实现数据格式化的攻略,如有不懂的地方,欢迎指出。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue通过过滤器实现数据格式化 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 基于vue 实现token验证的实例代码

    下面我将详细讲解基于vue实现token验证的实例代码的完整攻略。 步骤一:创建Vue项目 首先,我们需要创建一个Vue项目,这里我们使用Vue-CLI命令行工具来快速生成一个Vue项目。打开终端,运行以下命令: # 全局安装Vue-CLI npm install -g @vue/cli # 创建一个新的Vue项目 vue create vue-token-…

    Vue 2023年5月28日
    00
  • 基于java实现websocket协议过程详解

    基于Java实现WebSocket协议过程详解 什么是WebSocket WebSocket是HTML5规范中的协议,它允许在客户端和服务器之间建立一种双向通信的协议,即WebSocket连接。该连接是基于TCP的,它通过在HTTP/1.1之上进行协商升级,可以在客户端和服务器之间创建持久性的连接,实现低延迟、高效率的实时通信。 WebSocket连接的建立…

    Vue 2023年5月28日
    00
  • mpvue开发音频类小程序踩坑和建议详解

    mpvue开发音频类小程序踩坑和建议详解 1. 前言 mpvue 是一个基于 Vue.js 核心的高性能小程序开发框架。它传承了 Vue.js 的语法风格和开发习惯,在小程序开发中尽可能的减少了学习成本和上手难度。同时,mpvue 利用 Webpack 和 Vue.js 的自身特性,将组件和业务逻辑代码进行分离抽离,维护更加方便易用。 在开发小程序中,音频类…

    Vue 2023年5月27日
    00
  • vscode运行vue项目需要配置什么? vscode启动vue项目的技巧

    要在VSCode中运行Vue项目,需要进行以下配置: 安装Node.js和Vue CLI 在开始之前,需要安装Node.js和Vue CLI。Node.js是JavaScript运行环境,Vue CLI是Vue.js的脚手架工具。Vue CLI会生成一个Vue项目的基本结构,包括依赖和配置文件。可以通过以下命令安装Node.js和Vue CLI: # 安装N…

    Vue 2023年5月28日
    00
  • vue+eslint+vscode配置教程

    下面是详细的“vue+eslint+vscode配置教程”的攻略: 步骤一:安装VS Code和Node.js 首先,你需要在你的电脑上安装 Visual Studio Code 编辑器和 Node.js 运行环境。你可以访问 VS Code 的官方网站和 Node.js 的官方网站下载安装包,并按照安装指南进行安装。 步骤二:新建Vue项目 打开你喜欢的终…

    Vue 2023年5月29日
    00
  • Promise改写获取萤石云直播地址接口示例

    下面是关于“Promise改写获取萤石云直播地址接口示例”的完整攻略: 什么是Promise Promise是一种基于回调函数的异步编程解决方案,可以简化嵌套回调函数的代码,使异步代码更易读、更易维护和扩展。 要理解Promise的运作流程,需要了解Promise有三种状态:Pending(进行中)、Fulfilled(已完成)和Rejected(已失败)。…

    Vue 2023年5月28日
    00
  • Vue零基础入门之模板语法与数据绑定及Object.defineProperty方法详解

    下面是“Vue零基础入门之模板语法与数据绑定及Object.defineProperty方法详解”的完整攻略。 一、模板语法及数据绑定 1.1 插值 Vue框架可以在HTML标签中使用插值语法,通过{{expression}}在模板中绑定数据。Expression通常是JavaScript表达式或变量,可以计算出一个值,并在绑定时进行渲染。例如: <d…

    Vue 2023年5月27日
    00
  • Electron学习应用程序打包实例详解

    Electron学习应用程序打包实例详解 Electron是一种开源的框架,可以使用HTML,CSS和JS来开发桌面应用程序。在本文中,我们将重点介绍如何打包Electron应用程序。 安装Electron Builder Electron Builder是一种著名的Electron打包工具,它可以将Electron应用程序打包成可执行文件。首先,我们需要使…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部