Vue过滤器(时间戳转时间)

目录

过滤器

HTML写法:

定义过滤器:

定义全局过滤器:

过滤器串联:

带参数过滤器:

时间戳转时间


过滤器

官方地址:过滤器 --- Vue.js (vuejs.org)

过滤器是指Vue.js支持在{{}}插值的尾部添加一个管道符"(|)"对数据进行过滤,

经常用于格式化文本,比如字母的大写、货币的千位使用、逗号分隔、转换时间等

HTML写法:

在双花括号中

html 复制代码
{{ name | chilema }}

在 `v-bind` 中,从2.1.0后 开始支持

html 复制代码
<div v-bind:id="rawId | formatId"></div>

定义过滤器:

使用filters关键字来定义过滤器

这里定义的过滤器为局部过滤器,在哪定义,在哪使用。

代码实例:

chilema方法中的value参数是双花括号中 | 左边的值

切记如果return没写,浏览器中将会什么都不会显示

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{name|chilema}}
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    var app=new Vue({
        el:"#app",//绑定一个元素
        data() {
            return {
                name:"张三"
            }
        },
        filters:{
            chilema(value){
                return value+",你吃了吗"
            }
        }
    })
</script>
</html>

浏览器输出结果:

定义全局过滤器:

全局的过滤器用的不多,但是根据不同情况使用

代码实例:

当全局过滤器和局部过滤器重名时,会采用局部过滤器。

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{name|helema}}
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    Vue.filter("helema",function(value){
        return value+",你喝了吗"
    })
    var app=new Vue({
        el:"#app",//绑定一个元素
        data() {
            return {
                name:"张三"
            }
        },
        filters:{
            chilema(value){
                return value+",你吃了吗"
            }
        }
    })
</script>
</html>

浏览器输出结果:

过滤器串联:

代码实例:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{name|chilema|helema}}
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    Vue.filter("helema",function(value){
        return value+",你喝了吗"
    })
    var app=new Vue({
        el:"#app",//绑定一个元素
        data() {
            return {
                name:"张三"
            }
        },
        filters:{
            chilema(value){
                return value+",你吃了吗"
            }
        }
    })
</script>
</html>

解释:

name的值将作为参数传入到chilema中,然后将chilema的结果传递到helema中

最终显示的是最后的那个过滤器

浏览器输出结果:

带参数过滤器:

javascript 复制代码
{{ name | chilema('arg1', arg2) }}

chilema这是有三个参数,name会是他的第一个参数,普通字符串 'arg1' 作为第二个参数,表达式arg2的值作为第三个参数。

vue代码:

javascript 复制代码
chilema(value,arg1,arg2){
    return value+",你吃了吗"
}

时间戳转时间

代码:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{Mytime | zhuanhuanTime01}}
        <br>
        {{Mytime | zhuanhuanTime02}}
    </div>
</body>
<script src="../js/vue2.7.js"></script>
<script>
    var app = new Vue({
        el: '#app',
        data() {
            return {
                Mytime:new Date()
            }
        },
        filters:{
            zhuanhuanTime01(value){
                var date = new Date(value);
                Y = date.getFullYear();
                M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) ;
                D = date.getDate() ;
                h = date.getHours() ;
                m = date.getMinutes();
                s = date.getSeconds(); 
                console.log(Y+M+D+h+m+s); 
                return Y+'-'+M+'-'+D+' '+h+':'+m+':'+s;
            },
            zhuanhuanTime02(value){
                var date = new Date(value);
                Y = date.getFullYear();
                M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) ;
                D = date.getDate() ;
                h = date.getHours() ;
                m = date.getMinutes();
                s = date.getSeconds(); 
                console.log(Y+M+D+h+m+s); 
                return Y+'年'+M+'月'+D+'日 '+h+'时'+m+'分'+s+'秒';
            }
        }
    });
</script>
</html>

浏览器输出结果:

相关推荐
三小河8 分钟前
React 插槽(Slot)完全指南:从基础到实战的灵活组件通信方案
前端·javascript·面试
布茹 ei ai12 分钟前
1、基于 GEE 的 NDVI 交互式时序可视化与趋势分析工具
javascript·gee·遥感图像处理·谷歌云平台
```???15 分钟前
666666999999
javascript·tcp/ip·node.js
ghfdgbg18 分钟前
12. AOP(记录日志)
前端
我命由我1234518 分钟前
微信小程序 - 页面返回并传递数据(使用事件通道、操作页面栈)
开发语言·前端·javascript·微信小程序·小程序·前端框架·js
一水鉴天19 分钟前
整体设计 定稿 备忘录仪表盘方案 之1 初稿之8 V5版本的主程序 之2: 自动化导航 + 定制化服务 + 个性化智能体(豆包助手)
前端·人工智能·架构
vortex530 分钟前
【Web开发】从WSGI到Servlet再到Spring Boot
前端·spring boot·servlet
于谦33 分钟前
git提交信息也能自动格式化了?committier快速体验
前端·javascript·代码规范
小高00736 分钟前
React 避坑指南:彻底搞定不必要的重新渲染
前端·javascript·react.js
浩浩酱41 分钟前
【TS】any的问题及与unknown的区别
前端·typescript