zoukankan      html  css  js  c++  java
  • 黑马vue---31-32、vue过滤器实例

    黑马vue---31-32、vue过滤器实例

    一、总结

    一句话总结:

    vue内部的东西,无论是过滤器还是组件,都是键值对的方式

    1、过滤器的定义语法?

    Vue.filter('过滤器的名称', function(){})

    2、过滤器中的 function ,第一个参数,已经被规定死了,永远都是 过滤器 管道符前面 传递过来的数据?

    Vue.filter('过滤器的名称', function (data) { return data + '123' })

    二、vue过滤器实例

    1、全局过滤器

     1     // 全局的过滤器, 进行时间的格式化
     2     // 所谓的全局过滤器,就是所有的VM实例都共享的
     3     Vue.filter('dateFormat', function (dateStr, pattern = "") {
     4       // 根据给定的时间字符串,得到特定的时间
     5       var dt = new Date(dateStr)
     6 
     7       //   yyyy-mm-dd
     8       var y = dt.getFullYear()
     9       var m = dt.getMonth() + 1
    10       var d = dt.getDate()
    11 
    12       // return y + '-' + m + '-' + d
    13 
    14 
    15 
    16       if (pattern.toLowerCase() === 'yyyy-mm-dd') {
    17         return `${y}-${m}-${d}`
    18       } else {
    19         var hh = dt.getHours()
    20         var mm = dt.getMinutes()
    21         var ss = dt.getSeconds()
    22 
    23         return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
    24       }
    25     })
     

    2、局部过滤器

     1     // 如何自定义一个私有的过滤器(局部)
     2     var vm2 = new Vue({
     3       el: '#app2',
     4       data: {
     5         dt: new Date()
     6       },
     7       methods: {},
     8       filters: { // 定义私有过滤器    过滤器有两个 条件  【过滤器名称 和 处理函数】
     9         // 过滤器调用的时候,采用的是就近原则,如果私有过滤器和全局过滤器名称一致了,这时候 优先调用私有过滤器
    10         dateFormat: function (dateStr, pattern = '') {
    11           // 根据给定的时间字符串,得到特定的时间
    12           var dt = new Date(dateStr)
    13 
    14           //   yyyy-mm-dd
    15           var y = dt.getFullYear()
    16           var m = (dt.getMonth() + 1).toString().padStart(2, '0')
    17           var d = dt.getDate().toString().padStart(2, '0')
    18 
    19           if (pattern.toLowerCase() === 'yyyy-mm-dd') {
    20             return `${y}-${m}-${d}`
    21           } else {
    22             var hh = dt.getHours().toString().padStart(2, '0')
    23             var mm = dt.getMinutes().toString().padStart(2, '0')
    24             var ss = dt.getSeconds().toString().padStart(2, '0')
    25 
    26             return `${y}-${m}-${d} ${hh}:${mm}:${ss} ~~~~~~~`
    27           }
    28         }
    29       },
    30       directives: { // 自定义私有指令
    31         'fontweight': { // 设置字体粗细的
    32           bind: function (el, binding) {
    33             el.style.fontWeight = binding.value
    34           }
    35         },
    36         'fontsize': function (el, binding) { // 注意:这个 function 等同于 把 代码写到了 bind 和 update 中去
    37           el.style.fontSize = parseInt(binding.value) + 'px'
    38         }
    39       }
    40     })
    41 
    42 
    43     // 过滤器的定义语法
    44     // Vue.filter('过滤器的名称', function(){})
    45 
    46     // 过滤器中的 function ,第一个参数,已经被规定死了,永远都是 过滤器 管道符前面 传递过来的数据
    47     /* Vue.filter('过滤器的名称', function (data) {
    48       return data + '123'
    49     }) */
     
  • 相关阅读:
    书列君荐书|《福尔摩斯探案大全集》.(英)阿瑟.柯南道尔.扫描版
    anaconda同时集成Python2 和 Python3
    python 使用sqlite,ConfigParser实例
    python 爬虫爬取历年双色球开奖信息
    关于python 爬虫遇到的反盗链
    CentOS7搭建Docker私有仓库----Docker
    Ansible + shell 实现部署fastdfs+nginx 实现图片服务器并提供动态缩放功能;
    python+fastdfs+nginx实现打包下载功能
    监控生产服务器内存使用前十
    python操作MySQL--实例
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/11774669.html
Copyright © 2011-2022 走看看