Posts
Ligengxin's Blog
Cancel

React diff算法分析和理解

  距离上次研究 React 工作原理以及有一段时间了,最近又在忙着看小程序方面的东西.忙里偷闲来继续回顾下以前看的 React diff 算法方面的知识. 1. 传统的 diff 算法   传统的 diff 算法的通过循环递归来比对节点的,这里时间复杂度是 O(n^2) 于此同时还需要对 diff 的节点做修改的操作这里的话是 O(n)的时间复杂度,结合到一起就变成了 O(n^3)的时...

使用SQL Server中处理JSON数据

  这次的任务是需要计算Azure中每个API访问的数量以及访问的方式,为了避免数据库数据冗余,所以就将source这个字段在kusto的查询中处理成了一个JSON.然后在存入到了数据库中.具体需求如下图 1.具体代码 我们首先纵向展开上图的原始数据,可以得到下图的数据 SELECT t1.apiPath, t1.operation, t1.[source], t1.[...

React机制分析总结

1.Virtual DOM   简单说下我对于 Virtual DOM的理解.顾名思义就是虚拟DOM,其实就是在内存中表示的DOM树.那如何在内存中表示DOM树呢,很简单使用一个JSON对象,通过不断在children属性中加入一个个类似的JSON对象,这样就能在内存构建出一棵虚拟的DOM树. { tagName: 'div', // 标签名 properties: { // 属性...

forEach中使用async/await

1.发现的问题   今天在写Azure Function的时候发现了一个问题,就是为了方便定位问题,于是给下面这段代码添加了log信息 // 大致是需要请求一个接口获取数据然后在把结果发送给另外一个接口 let count = 0; const result = await fetchDataFromDataBase(); result.forEach(async (item) =>...

使用Ant design Form组件获取Upload组件的fileList信息

  简述下我的业务场景,一个Modal组件中使用了Form组件,而这个Form组件又包含了一些别的组件,然后在点击Modal的确认按钮把Form表单的数据全部发送给Api. 不看过程直接看代码的 1.发现的问题   在完成一切后,我发现点击确认按钮后并不能获取到Form组件下面Upload组件的信息,当时就想应该这个组件Api是支持的,然后看了一遍Form组件和Upload组件的发现了一...

前端使用Ant design Upload组件上传文件到阿里云OSS的坑

  业务需求需要上传文件,那就想办法整呗,一顿操作过后选择了阿里云OSS. 1.发现的问题   跟着阿里云文档一步步操作过来的,但是还是出现了一个403错误 <Error> <Code>SignatureDoesNotMatch</Code> <Message>The request signature we calculated ...

Azure 踩坑合集

  记录在使用Azure过程中遇到的的一系列问题和解决办法. 1.Azure Function Invalid ELF header from build/Release/nodegit.node 错误信息: ‘Error: /home/site/wwwroot/node_modules/nodegit/build/Release/nodegit.node: invalid...

深入React技术栈第2章总结

  深入React技术栈第2章总结 1.React 的事件机制   React有自己的事件机制,所以你在React使用事件函数比如在onClick的时候,你会发现他的写法是驼峰式命名,而原生的事件直接就是onclick.而且在常用的事件,比如onclick的回调函数中,获取的event并不是一个原生事件,打印出来是一个SyntheticEvent对象(proto: SyntheticEve...

JavaScript高级程序设计第4章总结

  看完JavaScript高级程序设计第4章一些总结和想法 1.作用域链的的理解   我们都知道函数在运行的时候,函数内部是可以访问在函数外部定义的变量的.这是因为JS中每个函数都有自己的上下文,每个函数在执行的时候,即当前上下文在执行的时候都会生成当前函数内变量对象的作用域链,而这个作用域链的next(我的理解是把作用域链当成链表,通过next属性找到下一个作用域链)指向的就是包含当前...

一次复杂的需求的存储过程实现代码

  这次需求类似于需要对比某个产品的不同月份的销售数据,生成一个趋势的新字段,也就是说如果你的这个产品有4个月的数据的话,那么在这个趋势的字段里面就应该有3个值来描述4个月的趋势变化.难点应该在于如何对比并把生成趋势这个字段. 具体代码 WITH source AS ( SELECT column1, column2, column3, colum...