0%

React

这段时间使用 hooks 的写法进行开发。

useEffect 的使用容易出现竞态和死循环的问题,所以慎用,有的时候可以使用 useMemo 的方式去代替 useEffect 的一些赋值问题。

Hooks 和 Class Component 使用感受

非常非常主观的感受,终于明白了之前说的如果对 hooks 不熟悉就不要轻易使用 hooks 的要求。

阅读全文 »

本文使用的是 formily 2.* 版本

碎碎念:
使用 formily 已经半年了,期间使用 formily 表单写了几个大需求,目前状态处于能够快速定位 formily 相关问题的阶段。但是没有完整的读过源码和梳理 formily 处理方式,所以还是不够深入,仅处于会用状态。
突然发现我好像没有从头到尾好好看过 formily 官方文档,都是在看示例,初期看文档可能没有太深的感受,现在再去看一遍觉得受益匪浅。

本文主要是针对使用 formily 开发过程中遇到的问题做一个踩坑复盘,顺便解答一下最开始上手使用 formily 的时候可能会产生的疑问:

疑问点:

  • 什么是 formily?formily 能解决哪些问题?
  • 使用 class component 还是使用 function component 写表单
  • 使用 JSON Schema 还是 JSX 的方式写表单
  • 使用 formily Field 管理表单字段数据状态

踩坑复盘:

阅读全文 »

答案参考:https://ghaiklor.github.io/type-challenges-solutions/zh/

获取函数返回类型

题目链接:https://github.com/type-challenges/type-challenges/blob/master/questions/2-medium-return-type/README.zh-CN.md

不使用 ReturnType 实现 TypeScript 的 ReturnType<T> 泛型。

ReturnType<Type>:构造函数的返回类型;

阅读全文 »

理论

GlobalEventHandlers.onerror

用于处理 error 事件。

Error事件的事件处理程序 (en-US),在各种目标对象的不同类型错误被触发:

  • JavaScript运行时错误(包括语法错误)发生时,window会触发一个ErrorEvent接口的error事件,并执行window.onerror()
  • 当一项资源(如<img><script>加载失败,加载资源的元素会触发一个Event接口的error事件,并执行该元素上的onerror()处理函数。这些error事件不会向上冒泡到 window,不过(至少在Firefox中)能被单一的window.addEventListener (en-US)捕获。可以使用捕获的方式监听到资源加载失败。
阅读全文 »

React

数据透传,虽然使用了 props 进行层层传递,但是应该使用 context 进行透传。

避免过度使用 redux。

TypeScript

Array.includes

阅读全文 »

策略模式

策略模式:定义一系列的算法,把它们一个个封装起来,并且使它们可以相互替换。

一个基于策略模式的程序至少由两个部分组成。

第一个部分是一组策略类,策略类封装了具体的算法,并负责具体的计算过程。

第二个部分是环境类 Context,Context 接受客户的请求,随后把请求委托给某一个策略类。

阅读全文 »

题目链接:https://github.com/type-challenges/type-challenges/blob/master/README.zh-CN.md

如何练习提高自己的类型体操水平

正确区分类型(type)和值(value)

熟悉常见的类型体操动作

  • 原始类型(Primitive Type)
  • 字面量类型(Literal Type,Template Literal Type)
  • 联合类型(Union Type)和交叉类型(Intersection Type)
  • 索引类型(Index Type)和映射类型(Map Type)
  • 条件类型(Conditional Type)
  • typeof 和 keyof
阅读全文 »