31.Vue过滤器

阅读: 评论:0

31.Vue过滤器

31.Vue过滤器

目录

1.局部过滤器

2.全局过滤器

3.总结


这一小节我们来学一个比较简单的东西,Vue的过滤器,先声明一下,这个过滤器并不是很必要的东西,它只是Vue给我们提供的一个新的数据处理的方式而已。想用的话就用,不想用的话也可以通过计算属性,methods来实现。

1.局部过滤器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>条件渲染</title><!--引入Vue--><script type="text/javascript" src="../js/vue.js"></script><script type="text/javascript" src="../js/dayjs.min.js"></script><style></style>
</head>
<body><!--准备好一个容器--><div id="root"><h2>显示格式化后的时间</h2><!-- 计算属性实现 --><h3>现在是:{{fmtTime}}</h3><!-- methods实现 --><h3>现在是:{{getFmtTime()}}</h3><!-- 过滤器实现 --><h3>现在是:{{time | timeFormater}}</h3><!-- 过滤器实现(传参),过滤器可以串联传递 --><h3>现在是:{{time | timeFormater('YYYY年MM月DD日') | mySlice}}</h3></div>
</body><script type="text/javascript"&fig.productionTip = false //阻止Vue在启动时生成生产提示const vm = new Vue({el:'#root',data:{time:1658106191557},methods: {getFmtTime(){return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')}},computed:{fmtTime(){return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')}},filters:{timeFormater(value,str='YYYY年MM月DD日 HH:mm:ss'){return dayjs(this.time).format(str)},mySlice(value){return value.slice(0,4)}}})
</script>
</html>

实现效果:

上面我们就展示了过滤器的基本用法,但是我们上面展示的这种过滤器用法都是属于局部过滤器,它是写在一个new Vue实例中的,当我们再new另外一个Vue实例的话,之前的过滤器在这个新的实例中就用不了。虽然我们还没有学到组件的概念,但是当以后我们开发的话,是会用到多个组件的。而一个组件就相当于一个微型的vm,它比vm身上少了一些东西。

如果我们定义的是刚刚所使用的局部过滤器,那么组件A就无法使用组件B中定义的局部过滤器test ,组件B也无法使用组件A中定义的局部过滤器demo。

2.全局过滤器

与局部过滤器对应的就是全局过滤器,我们下面再看一下怎么定义一个全局过滤器

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>条件渲染</title><!--引入Vue--><script type="text/javascript" src="../js/vue.js"></script><script type="text/javascript" src="../js/dayjs.min.js"></script><style></style>
</head>
<body><!--准备好一个容器--><div id="root"><h2>显示格式化后的时间</h2><!-- 计算属性实现 --><h3>现在是:{{fmtTime}}</h3><!-- methods实现 --><h3>现在是:{{getFmtTime()}}</h3><!-- 过滤器实现 --><h3>现在是:{{time | timeFormater}}</h3><!-- 过滤器实现(传参),过滤器可以串联传递 --><h3>现在是:{{time | timeFormater('YYYY年MM月DD日') | mySlice}}</h3><h3 :x="msg | mySlice"> 标签v-bind属性也可以使用过滤器</h3></div><div id="root2"><h2>{{msg | mySlice}}</h2></div>
</body><script type="text/javascript"&fig.productionTip = false //阻止Vue在启动时生成生产提示//全局过滤器Vue.filter('mySlice',function(value){return value.slice(0,4)})const vm = new Vue({el:'#root',data:{time:1658106191557,msg:'张三李四王五赵六'},methods: {getFmtTime(){return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')}},computed:{fmtTime(){return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')}},//局部过滤器filters:{timeFormater(value,str='YYYY年MM月DD日 HH:mm:ss'){return dayjs(this.time).format(str)}}})new Vue({el: '#root2',data: {msg:'张三李四王五赵六'}})
</script>
</html>

实现效果:

3.总结

过滤器:

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

        语法:

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

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

        备注:

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

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

本文发布于:2024-01-28 21:12:21,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170644754810316.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:过滤器   Vue
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23