搭建React项目遇到的问题与解决办法

1。在react项目中配置@路径

  1. 在新建完项目之后运行npm run ejet暴露出config文件
  2. 注意:必须是在本地文件没有改变的情况下运行npm run ejet,否则会报错,补救办法:git add . 然后git commit
  3. 在config/webpack.config.js文件的alias中插入代码'@': path.resolve('src')
  4. 再次运行项目即可

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);

// 通过递归,沿着对象的属性一层一层向下拷贝,每一层都进行拷贝

`

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值