目录
【过滤器】
过滤器的基本使用、私有过滤器和全局过滤器、使用全局过滤器格式化时间、过滤器的其他用法
(一)过滤器的基本使用
调用、声明(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 如果想要侦听对象的子属性的变化
则需要包裹一层单引号
· 代码