legend3细节---210312
一、总结
一句话总结:
1、数据库取数据,【toArray之前一定要判断有数据】,不然会出错?
比如 if($blogIntroduce) $blogIntroduce=$blogIntroduce->toArray(); else $blogIntroduce=[];
2、修改数据之后一些情况下【没必要从数据库拿数据】?
修改数据之后一些情况下【没必要从数据库拿数据】:【直接修改原数据】即可
3、vue组件数据更新问题?
vue组件中,如果直接更新一级数据,那没问题,如果更新数组里面的元素,有可能就会出现问题,这个时候可以用【深拷贝】
let new_item=JSON.parse(JSON.stringify( this.item ));
new_item.blogs=back_data['blogs'];
this.item=new_item;
这里的item是父组件传给子组件的数据
4、利用【查找功能】,快速找到代码位置?
利用【查找功能】,快速找到代码位置:尤其是对代码量特别多的情况很适用
5、取数据的时候【不要连那么多表】?
取数据的时候【不要连那么多表】:很多数据可以在用户点击的时候【动态请求】
6、【方法或者函数的编号系统】?
【方法或者函数的编号系统】:这样非常方便理解方法的层级,数字和字母混合用,可以考虑是一个大写字母一个小写字母
7、测试阶段注意?
测试阶段注意:测试时候测试阶段的数据可以显示在操作界面
8、函数尽量传递参数,这样方便函数的复用?
函数尽量传递参数,这样方便函数的复用:比如前端vue中的数据处理
9、js的数组操作的位置【推荐用对象】来做?
js的数组操作的位置【推荐用对象】来做,就是键值对那种形式,这样查找数据效率比较高
而且如果是数组形式,【需要在数组中删除元素的时候,遍历数组就会出错】,比如在for循环中user_blog_categories.splice(i,1);而对象不会出错
10、【循环内】【赋初值】【一定要检查是否有数据】?
【循环内】【赋初值】【一定要检查是否有数据】,如果没有数据才赋初值,不然数据会被覆盖
if(format_user_lesson[ul_updated_at_ts]==undefined){format_user_lesson[ul_updated_at_ts]={};}
let format_user_lesson={};
//1、遍历用户lesson,按照【日期对应的天的时间戳】规整数据
for (let i=0;i<new_user_lesson.length;i++){
let now_lesson=new_user_lesson[i];
let ul_updated_at_ts=this.getDateDay_beginTS(now_lesson['ul_updated_at'])/1000;
now_lesson['ul_updated_at_ts']=ul_updated_at_ts;
//赋初值之前要检测是否有数据,如果没有数据才赋初值,不然数据会被覆盖
if(format_user_lesson[ul_updated_at_ts]==undefined){
format_user_lesson[ul_updated_at_ts]={};
}
if(format_user_lesson[ul_updated_at_ts]['data']==undefined){
format_user_lesson[ul_updated_at_ts]['data']={};
}
if(format_user_lesson[ul_updated_at_ts]['data'][now_lesson['l_id']]==undefined){
format_user_lesson[ul_updated_at_ts]['data'][now_lesson['l_id']]=now_lesson;
}
}
二、内容在总结中