第一本书随笔1
- filter
不改变原数组,返回一个新数组,不会引起视图更新
let array=[1,2,3,4,5]
let newarray=array.filter(function(item){
return item>2
})
newarray=[3,4,5] - concat
拼接数组,不改变原数组,得到一个新数组,不会引起视图更新
let array=[1,2,3,4,5]
let newarray=array.concat(6) ==>newarray=[1,2,3,4,5,6]
let array2=[7,8,9,10]
let newarray=array.concat(array2) ==>newarray=[1,2,3,4,5,6,7,8,9,10]
let array3=[11]
let newarray=array.concat(array2,array2) ==>newarray=[1,2,3,4,5,6,7,8,9,10,11] - slice splice split
slice 截取数组,不改变原数组,得到一个新数组,不会引起视图更新
let array=[1,2,3,4,5]
let newarray=array.slice(start,end)
start:开始截取的下标(闭区间)
end:结束截取的下标(开区间)
splice 增加或者删除数组子元素,改变原数组,会引起视图更新
let array=[1,2,3,4,5]
array.splice(start,num,item)
start:开始操作的下标(闭区间)
num:操作的元素个数--->为0的时候 代表增加元素;不为0代表删除元素
item:操作的元素
split 分割字符串转成数组 - watch 监听数据
watch:{
handle:{
param:function(newval,oldval){
console.log(newval===oldval)//true 对象的话则指向同一个引用,所以为true
},
//还可以单独监听对象的某个属性
‘info.name’:function(newval,oldval){
},
deep:true,//深度监听,可以监听复杂型数据,eg 数组 对象,
immediate:true,//立即执行
}
}
同时监听多个变量
computed:{
dataChange () {
const {tempUrl, tagNameLists} = this;
return {tempUrl, tagNameLists};
}
}watch:{
dataChange:{
handler(newValue,oldValue) {
console.log("监听到了数据的变化",newValue);
},
deep: true
}
} - computed:{ //根据依赖关系对计算结果进行缓存
//定义一个计算属性,类似于在data里面定义一样,使用时不需要加括号
computedname:function(){
return
},
} - methods:{}
- data(){
//防止污染
return{}
} - event
//$event是固定写法,手动传入事件对象,参数位置不固定
<div @click=goto($event,param1)></div>
//自动传入事件对象
<div @click=goto(param1)></div>
goto(event){
let val=event.target.value;
}