1、表单域修饰符
number :转换为数值
trim: 去掉开始和结尾的空格 (中间去不掉)
lazy:将input、事件切换为change事件
2.1自定义指令(获取元素的焦点)
Vue.directive('focus' ,{ //这里的focus是自命名的最好见名知意
inserted : function(e){
e.focus()//获取元素的焦点}})
<input type="text" v-focus />
2.2带参数的自定义指令(改变背景色)
Vue.directive('color' ,{
inserted : function(e,binding){
e.style.backgroudColor = binding.value.color} )
<input type="text" v-color="{color:green}" />
2.3局部指令(要定义在vue实例里面)
directives:{ //局部里面要加s
focus:{
inserted:function(e)
e.focus()
}}}
3、计算属性 computed
计算属性与方法的区别:计算属性是基于依赖进行缓存的,而方法不缓存
4、侦听器 watch
watch 中的属性 一定是data 中 已经存在的数据
当需要监听一个对象的改变时,普通的watch方法无法监听到对象内部属性的改变,只有data中的数据才能够监听到变化,此时就需要deep属性对对象进行深度监听
5、过滤器
Vue.js允许自定义过滤器,可被用于一些常见的文本格式化。
过滤器可以用在两个地方:双花括号插值和v-bind表达式。
过滤器应该被添加在JavaScript表达式的尾部,由“管道”符号指示
支持级联操作
过滤器不改变真正的data,而只是改变渲染的结果,并返回过滤后的版本
全局注册时是filter,没有s的。而局部过滤器是filters,是有s的
6、生命周期
常用的 钩子函数
beforeCreate
在实例初始化之后,数据观测和事件配置之前被调用 此时data 和 methods 以及页面的DOM结构都没有初始化 什么都做不了
created
在实例创建完成后被立即调用此时data 和 methods已经可以使用 但是页面还没有渲染出来
beforeMount
在挂载开始之前被调用 此时页面上还看不到真实数据 只是一个模板页面而已
mountedel
被新创建的vm.$el替换,并挂载到实例上去之后调用该钩子。 数据已经真实渲染到页面上 在这个钩子函数里面我们可以使用一些第三方的插件
beforeUpdate
数据更新时调用,发生在虚拟DOM打补丁之前。 页面上数据还是旧的
updated
由于数据更改导致的虚拟DOM重新渲染和打补丁,在这之后会调用该钩子。 页面上数据已经替换成最新的
beforeDestroy
实例销毁之前调用
destroyed
实例销毁后调用
7、数组变异方法
push()往数组最后面添加一个元素,成功返回当前数组的长度
pop()删除数组的最后一个元素,成功返回删除元素的值
shift()删除数组的第一个元素,成功返回删除元素的值
unshift()往数组最前面添加一个元素,成功返回当前数组的长度
splice()有三个参数,第一个是想要删除的元素的下标(必选),第二个是想要删除的个数(必选),第三个是删除 后想要在原位置替换的值
sort()sort() 使数组按照字符编码默认从小到大排序,成功返回排序后的数组
reverse()reverse() 将数组倒序,成功返回倒序后的数组
8、替换数组不会改变原始
filterfilter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
concatconcat() 方法用于连接两个或多个数组。该方法不会改变现有的数组
sliceslice() 方法可从已有的数组中返回选定的元素。该方法并不会修改数组,而是返回一个子数组