美文网首页
vue 局部过滤器和全局过滤器

vue 局部过滤器和全局过滤器

作者: 暴躁程序员 | 来源:发表于2022-03-25 10:07 被阅读0次

vue 过滤器常用于对 data 中的数据进行处理

局部过滤器

1. 简单使用

在组件中

<template>
  <div>
    <div>{{ money | formateSuffix("人民币") }}</div>
    <div>性别:{{ sex | formateSex }}</div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      money: 1000,
      sex: "1",
    };
  },
  filters: {
    formateSuffix: function (v, arg) {
      return v + arg;
    },
    formateSex: function (v) {
      const obj = {
        1: "男",
        2: "女",
      };
      return obj[v];
    },
  },
};
</script>
2. 封装抽离
  1. 新建 src/utils/localFilters.js,创建过滤器函数
// 按需引入

export const formateSuffix = function(v, arg)) {
  return v + arg;
};

export const formateSex = function(v) {
  const obj = {
    1: "男",
    2: "女"
  };
  return obj[v];
};

  1. 在组件中,引入并使用
<template>
  <div>
    <div>{{ money | formateSuffix("人民币") }}</div>
    <div>性别:{{ sex | formateSex }}</div>
  </div>
</template>
<script>
import { formateSuffix, formateSex } from "@/utils/localFilters.js";
export default {
  data() {
    return {
      money: 1000,
      sex: "1",
    };
  },
  filters: {
    formateSuffix,
    formateSex,
  },
};
</script>

全局过滤器

1. 简单使用
  1. 在组件中使用
<template>
  <div>
    <div>{{ money | formateSuffix("人民币") }}</div>
    <div>性别:{{ sex | formateSex }}</div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      money: 1000,
      sex: "1",
    };
  },
};
</script>
  1. 在 main.js 中注册
Vue.filter("formateSuffix", function(v, arg) {
  return v + arg;
});
Vue.filter("formateSex", function(v, arg) {
  const obj = {
    1: "男",
    2: "女"
  };
  return obj[v];
});
2. 封装抽离
  1. 新建 src/utils/globalFilters.js,创建过滤器函数
// 全局引入

const formateSuffix = function(v, arg) {
  return v + arg;
};

const formateSex = function(v) {
  const obj = {
    1: "男",
    2: "女"
  };
  return obj[v];
};

export default {
  formateSuffix,
  formateSex
};

  1. 新建 src/utils/global.js,在 install 函数中,遍历重构过滤器对象
// 引入过滤器
import filters from "./globalfilters.js";

const globals = {
  install: function(Vue, option) {
    Object.keys(filters).forEach(key => {
      // Object.keys(filters) //返回数组,数组里面的每一项是对象的属性名称
      Vue.filter(key, filters[key]);
    });
  }
};

export default globals;

  1. 在 main.js 中,引入并 use
import globals from "@/utils/global.js";
Vue.use(globals);
  1. 在组件中使用
<template>
  <div>
    <div>{{ money | formateSuffix("人民币") }}</div>
    <div>性别:{{ sex | formateSex }}</div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      money: 1000,
      sex: "1",
    };
  },
};
</script>

注意

  1. 过滤器可串联
  2. 过滤器可传参,第一个接受的参数是 | 前 data 中的数据,第二个接受参数起才是过滤器传递的参数

相关文章

  • vue filter 过滤器使用

    格式化时间 自定义全局过滤器 vue 自定义过滤器分为"全局过滤器"和"局部过滤器"两种。 一、 全局过滤器 全局...

  • 过滤器

    全局过滤器 局部过滤器 保留小数 局部: 全局: 过滤器获取时间

  • Vue进阶(1)

    一.过滤器 过滤器分为局部过滤器和全局过滤器 1.局部过滤器 格式 2.全局过滤器 格式 练习 1.当数字为小于1...

  • 2018-09-17 vue.js

    vue.js 全局过滤器 局部过滤器 计算属性 1.过滤器 : 让要显示在页面上的内容进行重新筛选 全局过...

  • VUE过滤器和计算属性

    过滤器主要分为全局过滤器和局部过滤器。 全局过滤器如下: 局部过滤器如下: 计算属性如下: 过滤器中获取日期: 计...

  • vue的过滤器及计算属性

    1,过滤器:让要显示在页面上的内容进行重新筛选2,过滤器分为全局过滤器和局部过滤器全局过滤器: 局部过滤器: 3,...

  • 过滤器

    ...过滤器分为全局过滤器和局部过滤器全局过滤器的格式:html:{{数据,全局过滤器的名字}}//解析数据js:...

  • 过滤器、计算属性

    全局过滤器 局部过滤器 计算属性

  • VUE过滤器

    过滤器:让要显示在页面上的内容重新筛选。 主要分为全局过滤器和局部过滤器。全局过滤器如下: 局部过滤器如下: 过滤...

  • vue自定义过滤器

    Vue的自定义过滤器有两种:全局过滤器和内部过滤器全局过滤器定义在vue实例化之前 内部过滤器注册在实例内部,仅在...

网友评论

      本文标题:vue 局部过滤器和全局过滤器

      本文链接:https://www.haomeiwen.com/subject/pikljrtx.html