无题

五零二二

创建:2022-01-10 12:31      更新:2022-09-06 18:59

Express 官网

swiper 官网

ElementUI 官网

json-server GitHub

node.js

vue获取数据在哪个周期函数

生命周期 vue-router和location.herf区别

vue-router有哪几种导航钩子

计算属性computed 侦听属性watch

flex属性是flex-grow,flex-shrink和flex-basis的简写,默认值为0 1 auto。后两个属性可选

js循环

webpack优化,配置

异步组件 应用

双向数据绑定实现

子父孙兄弟组件传值,子父组件产生和销毁顺序, props $emit

vm.$refs ref标记

插槽slot

vuex:组件-》actions-》mutations-》state

var和let:var的问题(1.变量提升;2.变量覆盖;3.没有块级作用域) const:定义的值在栈内存的地址是固定的

闭包

解构赋值 let a=1;let b=2;[a,b]=[b,a];//a=2 b=1

无限层级树转换

let arr = [
    {id: 1, name: '部门1', pid: 0},
    {id: 2, name: '部门2', pid: 1},
    {id: 3, name: '部门3', pid: 1},
    {id: 4, name: '部门4', pid: 3},
    {id: 5, name: '部门5', pid: 4},
]
function arrayToTree(items) {
    const result = [];   // 存放结果集
    const itemMap = {};  //对应关系集
    for (const item of items) {
        const id = item.id;
        const pid = item.pid;

        //将对应关系集中,对应id自身的信息更新,并将之前保存的children信息存储下来
        itemMap[item.id] = {
            ...item,
            children:(itemMap?.[item.id]?.children)??[]//可选链+空值合并
        };

        //浅拷贝 直接将itemMap的栈内存地址赋值给treeItem
        const treeItem =  itemMap[id];

        //判断是否为顶层,是顶层则添加到结果集里
        if (pid === 0) {
            result.push(treeItem);
        } else {
        /*
        如果不是顶层,则将数据添加到对应关系集里
        由于treeItem是浅拷贝,这里将数据添加到itemMap中,会直接影响到结果集
        */
            if (!itemMap[pid]) {
            //关系集中不存在,则赋值为空
                itemMap[pid] = {
                    children: [],
                }
            }
            itemMap[pid].children.push(treeItem)
        }

    }
    return result;
}

console.log(arrayToTree(arr));
var length = 100;
function f1(){
    console.log(this) //this指向windows
    console.log(this.length);
}
var obj = {
    x:10,
    f2:function(f1){
        f1();
        arguments[0]() //this指向arguments
    }
}
obj.f2(f1,2,2,2)
//结果 100 4

let ajax1 = new XMLHttpRequest();
ajax1.open("GET","https://qxr.3chaas.com/userCenter/tennat/loadInfo",true);
ajax1.onreadystatechange = function(){
    if(ajax1.readyState == 4){
        let res = JSON.parse(ajax1.responseText);
        console.log(JSON.parse(res.data));
    }
}
ajax1.send();