VUE3-工作笔记05

发布于:2022-11-07 ⋅ 阅读:(523) ⋅ 点赞:(0)

本节:记录十月份学到的知识。

1.var 是全局作用域,let 是块级作用域,const是常量,就是不能改变的量,const也是块级作用域。

如果使用var 定义变量,点击事件找不到就会找到windows.的变量,因为它是直接挂载到windows的vdone节点的,一般用let来定义区域变量就可以了,写代码的时候,统一使用let定义变量,const定义方法,这样就比较整洁。

2.解构赋值,就是把一个数组或者对象里面,你要的元素,单独拿出来用。

//这个是不同情况下,传的内容缺少一两个的,所以就把数组里面的内容解构出来,才单个赋值
const onSubmit = debounce(() => {
  let { backupCopyNum, backupMode, backupPath, backupTime } =
    autoBackUpModeList;
  let obj;
  if (autoBackUpModeList.backupMode == 1) {
    obj = Object.assign(
      {},
      {
        backupCopyNum: backupCopyNum,
        backupMode: backupMode,
        backupPath: backupPath,
      }
    );
  } else {
    obj = Object.assign(
      {},
      {
        backupCopyNum: backupCopyNum,
        backupMode: backupMode,
        backupPath: backupPath,
        backupTime: backupTime,
      }
    );
  }
  setAutoBackup(obj)
    .then((res) => {
      if (res.code === 0) {
        message.success("自动备份模式设置成功");
      }
    })
    .catch((e: any) => {
      console.log(e);
    });
}, 500);

 3、模板字符串 :`` ,  1.里面的内容可以换行,不然双引号和双引号就要+号连接

2.以前字符串拼接是 变量名+“内容” ,用模板字符串就是:  `${变量名}内容123456`。

4、迭代器是一种接口,可以完成遍历操作,类似for ..-of.for..of循环的是value值,for ..in循环的是下标,使用迭代器的next()方法,可以遍历输出数组里面的值,done:true的时候,就是输出完了。

 let _this = this//因为没有定义,this在vue3里面赋值的是最外层的windows,vdone节点上的变量。

 

 

生成器函数是es6提供的异步解决编程,生成器还是一个迭代器对象

生成器就是函数名和function中间加一个*, 而且生成器,还必须调用next方法,才可以输出值

还可以跟yield语句,

可以当成函数的分割符号,就是可以通过代码的next方法,一条一条的执行

 

利用生成器的next可以完成一个异步操作生成器函数

1.独立的函数,  2.生成器函数,yeild 函数名()

就可以使用next调用生成器函数,这样就解决了回调地狱的问题

 获取用户数据,然后是订单数据,然后是商品数据,有顺序的获取的,

第一个函数传入的实参,将作为生成器第一条语句的返回结果,以此类推

promise异步也可以解决回调地狱的问题。await语句后面的代码,相当于回调函数。await只是让当前async函数内部、后面的代码等待,并不是所有代码都卡在这里。遇到await就先返回,执行async函数之后的代码。awiait就是可以返回函数,进行一个promise的异步调用

 5.踩的坑,接口传递的数组 [ ],实际接口调用的时候传的是对象{ },所以报错了。 

 6.有时候,没有动态的变化效果,要看绑定的值是不是错误,要一个一个log输出查看一下。

7.userList.value = res.data.list ?? [];  ??叫做空值合并运算符,只有有内容的时候才会赋值,不然则为[],,这样可以防止没内容的时候报错

let a; let b = a?.name;  .?、叫做可选链运算符,、只有当a存在,同时a具有name属性的时候,才会把值赋给b,否则就会将undefined赋值给b.重要的是,不管a存在与否,这么做都不会报错.

 8. 获取list的最后一个对象List.get(List.size()-1); 移除list的最后一个对象 :List.remove(List.size()-1);

9.前端请求删掉不用的参数,将要传的对象存到一个空对象,然后再删掉,就不会影响到原来的内容了。

 10.git 切换分支

 11.刷新,ts的情况下,直接赋值初始化的类型。

12.看别人的笔记看不懂的时候,看文档,一个文档看不懂,看两个文档,就一直看

13.表格栏目绑定拉动的方法

 

const handleResizeColumn = (w: any, col: { width: any }) => {// 栏目拉动
  col.width = w;};//表格栏目要设置成数字,和设置允许拉动:  width: 100, resizable: true,

14.RangeError: Maximum call stack size exceeded  :超出最大调用堆栈大小

出现这个的主要问题就是代码编写错误,通常表现为代码拼写错了,比如onclick写成onclich,还有就是逻辑性错误。

15.判断数组里面等于4的内容,才放到数组里面。

const agentList = ref([] as any[]); //获取虚拟代理信息
// 获取虚拟化平台的数据
const getAgentList = () => {
  virtualData().then((res) => {
    let obj = res.data.data;
    for (let i of obj) {
      if (i.type == 4) {
        agentList.value.push(i);//push是数组才可以用的方式
      }
    }
  });
};

 16.表格选择当前行,这个主要是要看文档就会知道的属性。

//在表格里面 加上这个
:rowSelection="{
              onChange: onSelectChange,
              type: 'radio',
            }"

//方法使用onchange绑定方法,可以获取点击的当前行id
const onSelectChange = (selectedRowKeys: []) => {
  userListstate.selectedRowKeys = selectedRowKeys;
};

17.never  永不存在的值的类型,类型“any”的参数不能赋给类型“never”的参数

在 TypeScript 中, never 类型表示的是那些永不存在的值的类型。 例如, never 类型是那些总是会抛出异常或根本就不会有返回值的函数表达式或箭头函数表达式的返回值类型。 此外,变量也可能是 never 类型,当它们被永不为真的类型保护所约束时。

never 类型是任何类型的子类型,也可以赋值给任何类型:

然而,没有类型是 never 的子类型或可以赋值给 never 类型(除了 never 本身之外)。 即使 any 也不可以赋值给 never。【所以初始化赋值不能赋值never,不然你后面添加内容是添加不进去的】

 18.typescript如何解决类型“never”上不存在属性‘xxx‘问题?_城南蝈蝈的博客-CSDN博客_类型上不存在属性怎么解决

 19.尝试 `npm install @xxxxx` (如果存在),或者添加一个包含 `declare module ‘xxxxx‘;` 的新声明(.d.ts)文_junjun.chen0606的博客-CSDN博客

 


网站公告

今日签到

点亮在社区的每一天
去签到