当前位置: 首页 > news >正文

过滤器---普通过滤器使用、串联过滤器、局部与全局过滤器

过滤器:

  定义:对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理)

  语法:

        1.注册过滤器:Vue.filter(name,callback)  或 new Vue{ filters:{} }

        2.使用过滤器:{xxx | 过滤器名}  或  v-bind:属性="xxx | 过滤器名 "

  备注:

        1.过滤器也可以接受额外参数、多个过滤器也可以串联

        2.并没有改变原本的数据,是产生新的对应的数据

目录

一、使用计算属性格式化时间

二、使用函数格式化时间

三、过滤器实现时间格式化

1.普通过滤器的实现以及传入参数实现

2.多个过滤器串联

3.全局过滤器


前提:导入依赖

  <script type="text/javascript" src="../js/dayjs.min.js"></script>

 

一、使用计算属性格式化时间

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title> 初识vue</title>
        <!--引入vue    引入之后,全局就多了一个vue这个构造函数-->
        <script type="text/javascript" src="../js/vue.js"></script> 
        <script type="text/javascript" src="../js/dayjs.min.js"></script>
    </head>
    <body>
        <div id="root">
            <h2>显示格式化后的时间</h2>
            <h3>现在是:{{fmtTime}}</h3>
        </div>

        <script type="text/javascript">
            //阻止vue在启动时生成生产提示
            Vue.config.productionTip=false
            
            new Vue({
                el:'#root',
                data:{
                   time:1621561377603
                },
                computed:{
                    fmtTime(){
                        return dayjs(this.time).format('YYYY-MM-DD HH:mm:ss')
                    }
                }
            })

        </script>   
    </body>
</html>

 

 

二、使用函数格式化时间

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title> 初识vue</title>
        <!--引入vue    引入之后,全局就多了一个vue这个构造函数-->
        <script type="text/javascript" src="../js/vue.js"></script> 
        <script type="text/javascript" src="../js/dayjs.min.js"></script>
    </head>
    <body>
        <div id="root">
            <h2>显示格式化后的时间</h2>

            <!-- methods实现 -->
            <h3>现在是:{{getFmtTime()}}</h3>
        </div>

        <script type="text/javascript">
            //阻止vue在启动时生成生产提示
            Vue.config.productionTip=false
            
            new Vue({
                el:'#root',
                data:{
                   time:1621561377603
                },

                methods: {
                    getFmtTime(){
                        return dayjs(this.time).format('YYYY-MM-DD HH:mm:ss')
                    }
                },
            })

        </script>   
    </body>
</html>

三、过滤器实现时间格式化

 

1.普通过滤器的实现以及传入参数实现

            <!-- 过滤器的实现 -->
            <!-- time作为参数传给  timeFormater  之后 timeFormater的返回值代替整个插值语句-->
            <h3>现在是:{{time | timeFormater}}</h3>

            <!-- 虽然我们在括号里只有一个参数,但是实际上是传了两个参数,第一个参数永远是time -->
            <h3>现在是:{{time | timeFormater('YYYY-MM-DD HH:mm:ss')}}</h3>
                filters:{
                    // 当str为空的时候,我们可以给str赋值YYYY-MM-DD HH:mm:ss
                    // 当str有值的时候,直接使用传过来的值
                    timeFormater(value,str='YYYY-MM-DD HH:mm:ss'){
                        return dayjs(value).format('YYYY-MM-DD HH:mm:ss')
                    }
                }

2.多个过滤器串联


            <!-- time传给timeFormater('YYYY-MM-DD HH:mm:ss')  工作完成之后再传给 mySlice -->
            <h3>现在是:{{time | timeFormater('YYYY-MM-DD HH:mm:ss') | mySlice}}</h3>
                filters:{
                    // 当str为空的时候,我们可以给str赋值YYYY-MM-DD HH:mm:ss
                    // 当str有值的时候,直接使用传过来的值
                    timeFormater(value,str='YYYY-MM-DD HH:mm:ss'){
                        return dayjs(value).format('YYYY-MM-DD HH:mm:ss')
                    },
                    mySlice(value){
                        // 截取前四位
                        return value.slice(0,4)
                    }
                }

 

 

3.全局过滤器

 前两课题的过滤器都是局部的过滤器

 现在我们来看一下全局过滤器

        Vue.filter('mySlice',function(value){
                  return value.slice(0,4)
            })

相关文章:

  • Docker安装Redis 7.x单机模式
  • 2022-09-04 C++并发编程(十八)
  • 插入一百万数据的最优解分析和耗时
  • DockerFile的基本知识及利用DockerFile构建镜像
  • Spring(二)
  • 计算机毕业设计ssm+vue基本微信小程序的执法助手平台
  • Java项目--网页版音乐播放器(JQuery前端逻辑)
  • windows service 服务器安装 MySQL
  • springboot+mybatis+mysql+Quartz实现任务调度(定时任务,实现可配置)
  • python简介常考面试题目:python是什么,有什么好处,python2和python3的主要区别
  • SpringCloud Stream消息驱动
  • JVisualVM 中线程状态(运行/休眠/等待/驻留/监视)解析
  • 常识——绳结打折法
  • AVL树的特性和模拟实现
  • java剧院售票系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • HTML-表单
  • js面向对象
  • learning koa2.x
  • Netty源码解析1-Buffer
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • vue中实现单选
  • 官方解决所有 npm 全局安装权限问题
  • 线性表及其算法(java实现)
  • 一些css基础学习笔记
  • #etcd#安装时出错
  • #pragma once与条件编译
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • (1)(1.11) SiK Radio v2(一)
  • (14)Hive调优——合并小文件
  • (3)(3.5) 遥测无线电区域条例
  • (4)STL算法之比较
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • .net core 客户端缓存、服务器端响应缓存、服务器内存缓存
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET/C# 使用反射注册事件
  • .NetCore项目nginx发布
  • .net下简单快捷的数值高低位切换
  • .NET学习教程二——.net基础定义+VS常用设置
  • .net知识和学习方法系列(二十一)CLR-枚举
  • @kafkalistener消费不到消息_消息队列对战之RabbitMq 大战 kafka
  • @Query中countQuery的介绍
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [20160807][系统设计的三次迭代]
  • [APUE]进程关系(下)
  • [BUG]Datax写入数据到psql报不能序列化特殊字符