• 09-vue过滤器的基本使用


    过滤器采用就近原则,即优先使用私有过滤器。
    1、全局过滤器

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="./lib/vue-2.4.0.js"></script> </head>
    <!-- 过滤器的定义 -->

    Vue.filter('过滤器的名称', function (date) {})
    <!-- 过滤器调用时候的格式    {{ name | 过滤器的名称 }} -->
    <body>
      <div id="app">
        <p>{{ msg | msgFormat('疯狂+1', '123') | test }}</p>
      </div>
    
      <script>
        // 定义一个 Vue 全局的过滤器,名字叫做  msgFormat
        Vue.filter('msgFormat', function (msg, arg, arg2) {
          // 字符串的  replace 方法,第一个参数,除了可写一个 字符串之外,还可以定义一个正则
          return msg.replace(/单纯/g, arg + arg2)
        })
    
        Vue.filter('test', function (msg) {
          return msg + '========'
        })
    
    
        // 创建 Vue 实例,得到 ViewModel
        var vm = new Vue({
          el: '#app',
          data: {
            msg: '曾经,我也是一个单纯的少年,单纯的我,傻傻的问,谁是世界上最单纯的男人'
          },
          methods: {}
        });
      </script>
    </body>
    
    </html>
    

      2、私有过滤器

    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} ~~~~~~~`
              }
            }
          },
          directives: { // 自定义私有指令
            'fontweight': { // 设置字体粗细的
              bind: function (el, binding) {
                el.style.fontWeight = binding.value
              }
            },
            'fontsize': function (el, binding) { // 注意:这个 function 等同于 把 代码写到了 bind 和 update 中去
              el.style.fontSize = parseInt(binding.value) + 'px'
            }
          }
        })
    

      

  • 相关阅读:
    验证email的正则表达式
    时间管理的小技巧
    如何在项目中进行畅快的沟通
    为什么你总成为不了架构师?
    我的时间管理Color My Time
    《重来》值得你多看几遍
    程序员如何成为一位出色的项目经理?
    大学毕业后拉开差距的真正原因
    [精华] FreeBSD-FAQ集锦(一)
    awk 常用信息
  • 原文地址:https://www.cnblogs.com/HHR-SUN/p/14102457.html
Copyright © 2020-2023  润新知