vue之过滤器的用法

一、概念

Vue.js 允许自定义过滤器,可被用作一些常见的文本格式化。

过滤器可以用在两个地方: 插值表达式和 v-bind 表达式。过滤器应该被添加在 JavaScript 表达式的尾部,由“管道符“   ‘  | ’  指示

二、定义全局过滤器

这里使用文本替换对过滤器做一个基础的分析。

<body>
    <div id="aaa">
        <p>{{text | textData('') }}</p>
    </div>
    
</body>
</html>
<script src="vue-2.4.0.js"></script>
<script>    
//定义全局过滤器 Vue.filter(
'textData', function(text,arr){ //第一个参数是要进行修改的字符,第二个参数是接收的传过来的新的参数 // return text.replace('云',arr) //只查询到第一个符合条件的字符,然后返回新的值。 return text.replace(/云/g , arr) //查询到所有符合条件的字符,返回传过来的新的参数 }); var guilt = new Vue({ el: '#aaa', data:{ text:'我是一朵云,云儿飘在天空,洁白的云朵' }, methods:{ } }) </script>

三、定义私有过滤器,设置时间的格式化

 <div id="getDate">
        <p>{{ date | forDate('') }}</p>
    </div>




 var vm = new Vue({
        el:'#getDate',
        data:{
            date: new Date()
        },
        methods:{},
      filters:{  //定义私有过滤器,过滤器有两个条件,过滤器名称和处理函数
            forDate:function(dateStr,pattern){  //传递一个默认值
                //根据给定的时间字符串,接收到一个确定的 时间值
                var date = new Date(dateStr)
                //获取年月日
                var yy = date.getFullYear()
                //将其转为字符串再通过 .padStart() 函数进行填充 第一个参数是填充为几位,第二个参数是用什么来填充
                var mm = (date.getMonth() + 1).toString().padStart(2,'0')
                var dd = date.getDate().toString().padStart(2,'0')
                
                //toLowerCase() 将传过来的参数转化为小写的字符串
                if(pattern.toLowerCase() === 'yyyy-mm-dd'){
                    return yy + '-' + mm + '-' + dd
                }else{
                    var hh = date.getHours().toString().padStart(2,'0')
                    var min = date.getMinutes().toString().padStart(2,'0')
                    var ss = date.getSeconds().toString().padStart(2,'0')

                    return yy + '-' + mm + '-' + dd + ' ' +hh + ':' + min + ':' + ss
                } 

            }
        }
    })


原文地址:https://www.cnblogs.com/starwei/p/12608861.html