1。在react项目中配置@路径
- 在新建完项目之后运行
npm run ejet
暴露出config文件 注意:必须是在本地文件没有改变的情况下运行npm run ejet,否则会报错,补救办法:git add . 然后git commit
- 在config/webpack.config.js文件的alias中插入代码
'@': path.resolve('src')
- 再次运行项目即可
2。在git项目管理的时候git pull
出现以下场景解决办法
git 在pull或者合并分支的时候有时会遇到这个界面。可以不管,直接下面两步:
1.按键盘左上角"Esc"
2.输入":wq",注意是冒号+wq,按回车键即可强制写入
3。深拷贝与浅拷贝
简单来说,深拷贝主要是将另一个对象的属性值拷贝过来之后,另一个对象的属性值并不受到影响,因为此时它自己在堆中开辟了自己的内存区域,不受外界干扰。
浅拷贝主要拷贝的是对象的引用值,当改变对象的值,另一个对象的值也会发生变化。
实现复杂层级关系的对象的深拷贝方法
let father = { name: "姓名", age: 48, child:[ { name: "小明", age: 20 },{ name: "小红", age: 15 } ], 最近流水:[ 10, 20, 21 ] };
function copy(data){// 传入数据,拷贝该数据
if(typeof data === "object"){ // 如果是一个引用类型就接着进行拷贝
// 引用类型的数据常用有两种:数组 和 对象
return Array.isArray(data)?copyArr(data):copyObj(data);
} else {
return data;
}
}
function copyArr(arr){ // 对数组格式的数据进行拷贝
let newArr = [];
for(var i = 0; i < arr.length; i++){
// arr[i] 有可能是基本类型也有可能是引用类型
newArr.push(copy(arr[i]));
}
return newArr;
}
function copyObj(obj){ // 对对象格式的数据进行拷贝
let newObj = {};
for(var s in obj){
newObj[s] = copy(obj[s]);
}
return newObj;
}
let child = copy(father);
child.child[0].age = 24;
console.log(child);
console.log(father);
// 通过递归,沿着对象的属性一层一层向下拷贝,每一层都进行拷贝
`