Vue-过滤器&侦听器-学习笔记

目录

【过滤器】

(一)过滤器的基本使用

    关于过滤器函数声明

(二)私有过滤器 和 全局过滤器

(三)使用全局过滤器格式化时间

(四)过滤器的其他用法

【侦听器】

(一)什么是watch侦听器

   ·1)基本的语法格式

      ·2) 应用场景

(二)侦听器的格式

    1)方法格式的侦听器  (方便)

    2)对象格式的侦听器  handler

    深度侦听 (deep选项)


【过滤器】

        过滤器的基本使用、私有过滤器和全局过滤器、使用全局过滤器格式化时间、过滤器的其他用法

(一)过滤器的基本使用

         调用、声明(filters)、形参、charAt()、toUpperCase()、slice()
        过滤器常用于文本的格式化。
        过滤器本质上就是一个函数。
        可用在:插值表达式 和 v-bind属性绑定
        过滤器应该被添加在JavaScript表达式的尾部,由 “管道符”| 进行调用
        比如:要给message首字母大写,就在“管道符”之后添加首字母大写的过滤器函数
    例:实现首字母大写
    · 根据老师的步骤在code文档中建立一个网页(此时未调用过滤器)
    
    · 希望得到的是Hello vue.js,那么添加“管道符”进行调用
    
    · 如果不进行声明capi,直接调用,错误(即需要声明)
    
  •     关于过滤器函数声明

    过滤器函数必须被定义到 filters节点之下
    过滤器函数中必须 有返回值
    进行声明时,这里用到形参val  
    过滤器函数形参中的第一个 永远是“管道符”前面的那个值,在这里就是指代的message
    
    效果实现
    

(二)私有过滤器 和 全局过滤器

  • 私有过滤器:定义到vue实例中的 filters节点下的过滤器。因为它只能在当前实例所控制的el区域内使用。
         在上面接触到的过滤器其实就是私有过滤器
  • 全局过滤器:在多个vue实例之间共享过滤器(经常使用全局)
            Vue.filter() 方法接收两个参数
                1.是全局过滤器的“名字”
                2.是全局过滤器的“处理函数”
        代码
        
        上图中对于vm实例用有私有过滤器,vm2没有
        运行之后就会发现,vm没有实现全局过滤器 ↓↓↓↓
        
   注意:如果全局过滤器和私有过滤器名字一致,此时按照“就近原则”,调用的还是“私有过滤器”

(三)使用全局过滤器格式化时间

    这里使用到前不久的品牌案例
    先将品牌案例文件夹复制到day3code文件夹中打开
    这是做成的原本的案例模样↓↓↓↓
    
    ·  调用过滤器
    要对“创建时间”这一栏格式化,打开对应的网页源代码找到时间↓↓↓↓那一块,添加调用过滤器
    
    ·  声明过滤器
    
    
    1.导入day.js的库文件
    2.直接调用dayjs()的话,得到的是当前的时间
    3.day.js(给定的日期时间) 得到指定的日期
    4.format()厘米爱你要写需要得到的指定的日期格式
ps:Day.js是一个极简的JavaScript库,可以为现代浏览器解析、验证、操作和显示日期和时间.直接搜索官网即可查看用法
    实现效果
    

(四)过滤器的其他用法

     (1)可连续调用多个过滤器
        {{ message | capi | xxx | yyy | zzz }}
        在第一个过滤器函数得到一个返回值。前面的返回值为后面的形参
        
     (2)过滤器传参
          first: 第一个参数,永远都是“管道符”前面的待处理的值
          other:从第二个参数开始,才是调用过滤器时传递过来的
        
             
     (3)过滤器的兼容性
        过滤器仅在vue 2.x和1.x中受支持,在vue3.x的版本中删除了过滤器的相关功能。

【侦听器】

监听数据变化,并进行什么操作

(一)什么是watch侦听器

        · watch 监听器允许开发者监视数据的变化,从而针对数据的变化做特定的操作
        · 侦听器本质上也是一个函数,要监视那个数据的变化,就把数据名作为方法名即可

   ·1)基本的语法格式

                newVal是“变化后的新值”,oldVal是“变化前的旧值”
                    新值在前,旧值在后
                
                效果实现
                

      ·2) 应用场景

                例:用户名是否被占用
                    只要值变化……
                
                    实现效果
                    输入
                    

(二)侦听器的格式

    1)方法格式的侦听器  (方便)

            ·缺点1:无法在一进入页面的时候,自动触发(函数形式的)
            ·缺点2:如果侦听的是一个对象,对象中的属性发生了变化,不会触发侦听器!!
            ·好处1:比较方便、简单

    2)对象格式的侦听器  handler

            ·好处1:可以通过 immediate 选项,让侦听器自动触发
            ·好处2:可以通过 deep 选项,让侦听器  深度监听 对象中每个属性的变化!
             基本语法格式
            
            
            效果实现
            
  •     深度侦听 (deep选项)

            对象格式的侦听器。
            使用deep选项,属性值有true/ false(默认值)
            只要对象中任何一个属性变化,都会触发“对象的侦听器”
            
          情况1  比较麻烦
                    代码
                    
                    
   
                     输入
                    实现效果
                       
          情况2  如果想要侦听对象的子属性的变化
                    则需要包裹一层单引号
                    · 代码
                    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值