• Vue过滤器


    Vue过滤器

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    		<script src="lib/vue.min.js"></script>
    		<style type="text/css">
    		</style>
    	</head>
    	<body>
    		
    		<div id="app">
    			<h1>{{msg |msgFormat}}</h1>
    		</div>
    	</body>
    	<script>
    		Vue.filter('msgFormat',function(msg){
    			return msg.replace(/学习/g,'讨论');
    		})
    		var vm = new Vue({
    			el:'#app',
    			data:{
    				msg:"我是一个爱学习的人,学习各种技术"
    			}
    		})
    	</script>
    </html>
    

    使用Vue.filter()来对指定的元素进行过滤,function中传递的参数即是el表达式中的第一个值,

    同时还可以传递多个参数

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    		<script src="lib/vue.min.js"></script>
    		<style type="text/css">
    		</style>
    	</head>
    	<body>
    		
    		<div id="app">
    			<h1>{{msg |msgFormat('讨论')}}</h1>
    		</div>
    	</body>
    	<script>
    		Vue.filter('msgFormat',function(msg,arg){
    			return msg.replace(/学习/g,arg);
    		})
    		var vm = new Vue({
    			el:'#app',
    			data:{
    				msg:"我是一个爱学习的人,学习各种技术"
    			}
    		})
    	</script>
    </html>
    

    同时可以进行多次过滤

    <!DOCTYPE html>
    <html>
    	<head>
    		<meta charset="UTF-8">
    		<title></title>
    		<script src="lib/vue.min.js"></script>
    		<style type="text/css">
    		</style>
    	</head>
    	<body>
    		
    		<div id="app">
    			<h1>{{msg |msgFormat('讨论')|test}}</h1>
    		</div>
    	</body>
    	<script>
    		Vue.filter('msgFormat',function(msg,arg){
    			return msg.replace(/学习/g,arg);
    		})
    		Vue.filter('test',function(msg){
    			return msg+'=====';
    		})
    		var vm = new Vue({
    			el:'#app',
    			data:{
    				msg:"我是一个爱学习的人,学习各种技术"
    			}
    		})
    	</script>
    </html>
    
    

    实际中经常会使用到的实例

      Vue.filter('dateFormat', function (dateStr, pattern = "") {
          // 根据给定的时间字符串,得到特定的时间
          var dt = new Date(dateStr)
    
          //   yyyy-mm-dd
          var y = dt.getFullYear()
          var m = dt.getMonth() + 1
          var d = dt.getDate()
    
          // return y + '-' + m + '-' + d
    
    
    
          if (pattern.toLowerCase() === 'yyyy-mm-dd') {
            return `${y}-${m}-${d}`
          } else {
            var hh = dt.getHours()
            var mm = dt.getMinutes()
            var ss = dt.getSeconds()
    
            return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
          }
        })
    

    同时如果页面中存在两个Vue对象,针对每个对象可以定义私有过滤器,如下

        // 如何自定义一个私有的过滤器(局部)
        var vm2 = new Vue({
          el: '#app2',
          data: {
            dt: new Date()
          },
          methods: {},
          filters: { // 定义私有过滤器    过滤器有两个 条件  【过滤器名称 和 处理函数】
            // 过滤器调用的时候,采用的是就近原则,如果私有过滤器和全局过滤器名称一致了,这时候 优先调用私有过滤器
            dateFormat: function (dateStr, pattern = '') {
              // 根据给定的时间字符串,得到特定的时间
              var dt = new Date(dateStr)
    
              //   yyyy-mm-dd
              var y = dt.getFullYear()
              var m = (dt.getMonth() + 1).toString().padStart(2, '0')
              var d = dt.getDate().toString().padStart(2, '0')
    
              if (pattern.toLowerCase() === 'yyyy-mm-dd') {
                return `${y}-${m}-${d}`
              } else {
                var hh = dt.getHours().toString().padStart(2, '0')
                var mm = dt.getMinutes().toString().padStart(2, '0')
                var ss = dt.getSeconds().toString().padStart(2, '0')
    
                return `${y}-${m}-${d} ${hh}:${mm}:${ss} ~~~~~~~`
              }
            }
          },
    
  • 相关阅读:
    pinia简单使用及持久化
    vue3中使用elementui 菜单栏(elmenu)点击两次才高亮的bug
    python 从文件下载lib包
    Centos7安装Python3.8
    Rust如何开发eBPF应用?(一)
    使用GetSelection模仿GetEntity
    CAD错误消息
    一款好用的pdf工具软件我的ABC软件工具箱
    wget 多线程下载 mwget 工具安装
    minio
  • 原文地址:https://www.cnblogs.com/zhendiao/p/9484571.html
Copyright © 2020-2023  润新知