📜  使用 Vue.js 过滤器将数据转换为 KB、MB、GB、TB

📅  最后修改于: 2022-05-13 01:56:40.602000             🧑  作者: Mango

使用 Vue.js 过滤器将数据转换为 KB、MB、GB、TB

在本文中,我们将学习如何使用 VueJS 中的过滤器将数据转换为给定的数据单元。过滤器是 Vue 组件提供的一项功能,可让您将格式设置和转换应用于模板动态数据的任何部分。组件的过滤器属性是一个对象。单个过滤器是一个接受一个值并返回另一个值的函数。返回的值是实际打印在 Vue.js 模板中的值。

可以使用过滤器将数据值缩写为 KB、MB、GB 或 TB。过滤器的逻辑将首先将该值除以 1024 的常数次方。例如,要转换以千字节为单位的值,假定常数为 1,类似地,对于以兆字节为单位的值,常数值为 2,依此类推。

下面的示例将演示这种方法:

示例:在此示例中,我们将字节的各种值转换为给定的数据单元给过滤器。

index.html


  


  
    

      GeeksforGeeks     

    

Bytes: {{d1}}B

       

MegaBytes :       {{ d1 | bytes('MB') }}     

       

Bytes: {{d2}}B

       

KiloBytes :       {{ d2 | bytes('KB') }}     

       

Bytes: {{d3}}B

       

TeraBytes :       {{ d3 | bytes('TB') }}     

       

Bytes: {{d4}}B

       

GigaBytes :       {{ d4 | bytes('GB') }}     

     
  


app.js
const parent = new Vue({
  el: "#parent",
  
  // Define the data to be converted
  data: {
    d1: 200000,
    d2: 1024,
    d3: 3532283533343,
    d4: 24322664648,
  },
  
  filters: {
    bytes: function (data, to) {
      const const_term = 1024;
  
      // Convert the values and concatenate
      // the appropriate unit
      if (to === "KB") {
        return (data / const_term).toFixed(3) + "KB";
      } else if (to === "MB") {
        return (data / const_term ** 2).toFixed(3) + "MB";
      } else if (to === "GB") {
        return (data / const_term ** 3).toFixed(3) + "GB";
      } else if (to === "TB") {
        return (data / const_term ** 4).toFixed(3) + "TB";
      } else {
        return "Please pass valid option";
      }
    },
  },
});


应用程序.js

const parent = new Vue({
  el: "#parent",
  
  // Define the data to be converted
  data: {
    d1: 200000,
    d2: 1024,
    d3: 3532283533343,
    d4: 24322664648,
  },
  
  filters: {
    bytes: function (data, to) {
      const const_term = 1024;
  
      // Convert the values and concatenate
      // the appropriate unit
      if (to === "KB") {
        return (data / const_term).toFixed(3) + "KB";
      } else if (to === "MB") {
        return (data / const_term ** 2).toFixed(3) + "MB";
      } else if (to === "GB") {
        return (data / const_term ** 3).toFixed(3) + "GB";
      } else if (to === "TB") {
        return (data / const_term ** 4).toFixed(3) + "TB";
      } else {
        return "Please pass valid option";
      }
    },
  },
});

输出: