这是我参与「第四届青训营」笔记创作活动的的第7天。
这是我参与「第四届青训营」笔记创作活动的的第7天。在实现低代码平台的过程中,我遇到了许多问题,在此分为两篇进行总结。第一篇是低代码平台实现的早期摸索阶段收集的问题,主要与课程对接,拿到课程提供的工具和方法,初次实践必定会遇到许多奇怪的问题,所收集的问题来自前端会接触到的各种工具和语言,如TypeScript、HTML、Vue等等。
JavaScript:如何在事件监听handle获得元素(如<div>)的某个属性(如name=”xx”)?
答:event.target.getAttribute("data-sortorder");
而在项目中,我们还遇到了该问题与冒泡结合在一起的情况,这时候target并不是我们想要的,那就使用currentTarget。target是触发该事件的那个,是第一个发出信号的那个元素;而currentTarget则是捕获到事件的那个div。
答案详解见:链接
而关于冒泡的一些知识(具体来说是事件的捕捉和冒泡),看这里
JavaScript:对象分为深浅拷贝,两者什么区别?.
深拷贝指另开内存空间,复制的对象与原对象的指针不同。浅拷贝则是指向同一块空间。
如何进行深/浅拷贝?
深拷贝:Object.assign(obj) 浅拷贝:赋值
Vue:给Key上UUID
起初想给key直接上id,结果:
其实应该在component生成时就内置id才对,这里是用id,不应该现用现配,因为id这东西本应该是后端负责的。
如上所述,在加入compoentList前,component应当自带id:
“NanoID,Son! ”
TypeScript:用数组咋就不给新增了呢?
”类型“Object”的参数不能赋给类型“never”的参数。 "Object" 类型可分配给极少数其他类型。是否想要改用“任意”类型?ts(2345)“ ”Argument of type 'Object' is not assignable to parameter of type 'never'. The 'Object' type is assignable to very few other types. Did you mean to use the 'any' type instead?Vetur(2345)“
答:
问题参考链接,感谢伟大的极客。
问题是声明这个数组时,忘了给类型:
- 事后直接把component.js改成了component.ts,全上了类型,解决了,
顺便一说,import不用改成.ts,大概是tsc之后也有js了,直接.js即可(就算我现在没找到那个js其实在哪)。
后续
解构之后还是never,怎么办?
The error "Argument of type is not assignable to parameter of type 'never'" occurs because when we declare an empty object, TypeScript infers its type to be
never[]- an array that will never contain any elements.
答:重启一下。
而我自己是睡个觉,第二天起来,发现好了(?) 。