自定义指令(directive指令)
我们还可以通过 `Vue` 提供的方法来自定义指令
注册指令
`vue` 提供了两种指令注册方式
- 全局指令
- 局部指令
全局指令
注册在外部
局部指令
注册在组件内部
在使用指令的时候,需要使用 `v-指令名称` 的方式来调用
ref
属性,vue提供的一种用于获取标签(组件)实例对象的简便方式
指令生命周期(钩子函数)
输入框光标案例:
输入框自动获得焦点
点击按钮后再获取焦点
拖拽功能案例:
.limit(修饰符,限定范围)
事件
组件的 `methods` 选项(方法集)
在组件选项中,提供了一个 `methods` 选项,用来存放组件中使用的函数方法,且存放在 `methods` 中的函数方法可以通过
组件实例(this)进行访问
通过内联方式绑定事件处理函数
事件绑定函数中的 `this` 指向组件实例
事件绑定函数中的第一个参数默认为 `event` 对象
也可以在事件绑定中直接调用函数(并不会立即执行,也是通过事件触发执行的)
事件对象需要手动传入,名称为 `$event`
事件修饰符
`vue` 还提供了许多按键修饰符
computed
在实际的应用中,我们会有一些原始数据,同时在应用中又会有一些数据是根据某些原始数据派生出来的,针对这样的一种情况,
`vue` 定义了一个专门用来处理这种派生数据的选项:`computed`
1.计算属性类似 `getter` 和 `setter` ,当访问某个计算属性的时候,就会调用 `computed` 中同名的函数,函数的返回值将作为该计 算属性的值
2.计算属性的值依赖计算函数中依赖的其它响应式数据
3.计算属性的值可以缓存,如果依赖的其它响应式数据没有发生变化,但多次访问该计算属性,得到结果是最近一次变化产生的值
(相对于调用方法得到结果在某些时候性能要好一些)
简写形式,get、set变体
获取时间案例
男、女、全选
计算属性的 `getter` 与 `setter`
默认情况下,计算属性函数是一个 `getter` 函数,如果计算属性只有 get 需求,则可以简写
watch
有的时候,我们需要的派生数据是通过异步的方式处理的,这个时候,计算属性就不太好用了(不能处理异步)。
我们可以使用另外一个选项:`watch`
不支持promise
延迟输入用watch:
多层监听
对于多层数据的监听,可以使用字符串+点语法
深度监听
默认情况下,`watch` 只对当前指定的值进行一层监听,如果需要对对象进行深度监听
过滤器
注册过滤器
全局过滤器
局部过滤器
案例: