Vue全局过滤器的使用


参考: https://www.cnblogs.com/liujn0829/p/8622960.html
https://blog.csdn.net/z8735058/article/details/76824548

一、单个过滤器

参考 https://cn.vuejs.org/v2/guide/filters.html

eg1:把英文首字母变为大写

    <div id="app">
         输入框
        <input type="text" v-model="content" @change="changeEvent">
         <!-- 显示层,后边加一个过滤器处理函数,把英文首字母变为大写 -->
        <h3>{{viewContent | changeCapitalLetter}}</h3>
    </div>

    <script>
     let vm = new Vue({
        el:"#app",
        data:{
            viewContent:"",
            content:""    
        },
        methods:{
            changeEvent(){
                this.viewContent = this.content;
            }
        },
        filters:{
            changeCapitalLetter(value){//value是输入框的内容,也是要显示的内容
                if(value){
                    let str = value.toString();
                    //获取英文,以空格分组把字符串转为数组,遍历每一项,第一项转为大写字母
                    let newArr = str.split(" ").map(ele=>{
                       return ele.charAt(0).toUpperCase() + ele.slice(1)
                    });
                    return newArr.join(" ")  //数组转字符串 以空格输出。。。
                }
            }
        }
     })
    </script>

二、多个过滤器

新建 dfilter.js 文件

const dfilters = {
    addZeroTwo: function(value) {
        var value = Math.round(parseFloat(value) * 100) / 100;   //注: 一定要用var声明,let会报错
        var arr = value.toString().split('.');
        if (arr.length === 1) {
            return value.toString() + '.00';
        } else {
            if (arr[1].length === 1) {
                return value.toString() + '0';
            }
        }
    },
    addZeroOne: function(value) {
        var value = Math.round(parseFloat(value) * 100) / 100;
        var arr = value.toString().split('.');
        if (arr.length === 1) {
            return value.toString() + '.0';
        } else {
            if (arr[1].length === 1) {
                return value.toString() + '0';
            }
        }
    }
}
export default dfilters;

在main.js中引入并注册(在new Vue前注册)

import dfilters from '../static/js/dfilters';
for (let key in dfilters) {
    Vue.filter(key, dfilters[key]);
}

在组件中使用

<span>原价:¥{{shopgoods.gprice|addZeroTwo}}</span>


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM