react typescript component strongly

react的思想和数据流

最近忙着写前端界面,粗略讨论以下 react 的函数式编程思想和组件通信的应对思路。 纯函数和副作用 函数式编程中函数是一等公民。一个函数的返回值只取决于输入参数时,那么这个函数的行为是确定的,我们称之为纯函数。那么反过来,如果函数的输入参数相同,而返回值不确定,那么该函数就是有副作用的,是不纯的。 ......
数据流 思想 数据 react

[Typescript] Write clean Type 3 - make a wrapper to cleanup generic usages

Original code: import { CSSProperties } from "react"; const useStyled = <TTheme = {}>(func: (theme: TTheme) => CSSProperties) => { // Imagine that thi ......
Typescript cleanup generic wrapper usages

完整实现React day09

实现第一个测试工具test-utils 实现测试环境 实现ReactElement用例 实现测试环境 pnpm i -D -w jest jest-config jest-environment-jsdom 配置: const { defaults } = require('jest-config' ......
React day 09

Solon2 常用注解之 @Component 与 @ProxyComponent 的区别

在 Solon 提倡“克制”的原则下,托管组件分为: 普通组件: 主要由内核提供的:@Configuration、@Component、@Controller、@Remoting 注解的类 其中 @Controller、@Remoting 支持函数拦截 代理组件: 主要由内核提供的:@ProxyCo ......

TypeScript:交叉类型

交叉类型 又是TS的一个骚操作。他可以把多个类或接口,合并他们的所有属性和方法为一个新的类型: interface PersonA{ name: string; } interface PersonB{ age: number; sayHi(): void; } type Person = Pers ......
TypeScript 类型

TypeScript keyof 和 typeof

typeof typeof 是 JS 本身就有的一个操作符,只不过在 TS 中多了一个功能。typeof 在 JS 中是获取变量的类型字符串: console.log(typeof 42); // "number" console.log(typeof 'blubber'); // "string" ......
TypeScript typeof keyof

TypeScript extends

extends 的含义 extends 在接口和类中都是继承的意思,继承之后的子接口或子类都是属于这个父接口或父类的,是一个从属关系。 extends 还有一个重要的用法就是在类型中,依旧还是继承的意思,是一种从属关系。如下的例子所示: interface Animal { name: string ......
TypeScript extends

React onBlur回调中使用document.activeElement返回body解决方案

最开始想实现一个功能,点击img图标后给出购物下拉框CartDropdown,当img及CartDropdown失去焦点时隐藏CartDropdown。 最开始的核心代码如下: export default function Cart() { const [isCartOpen, setIsCart ......

10分钟理解React生命周期

前言 学习React,生命周期很重要,我们了解完生命周期的各个组件,对写高性能组件会有很大的帮助. 一、简介 React /riˈækt/ 组件的生命周期指的是组件从创建到销毁过程中所经历的一系列方法调用。这些方法可以让我们在不同的时刻执行特定的代码,以满足组件的需求。 React 的生命周期可以分 ......
周期 生命 React

TypeScript type 关键字和 interface 关键字

前言 type 和 interface 都可以声明 TS 类型。 type Point1 = { x: number; y: number; }; interface Point2 { x: number; y: number; }; 它们两个声明这个对象类型有任何区别吗?很明显没有,我认为最能区分 ......
关键字 关键 TypeScript interface type

day09 react完整手写

实现Hooks的数据结构 fiberNode中可用的字段: memoizedState updateQueue 实现useState 包括2方面工作: 实现mount时useState的实现 实现dispatch方法,并接入现有更新流程内 ......
react day 09

D. Connected Components

D. Connected Components https://www.codeforces.com/contest/292/problem/D 思路 由于需要删除任意 连续段的 连接线, 引入前缀和 连续段的左右两边都需要, 所以引入两个前缀和。 https://blog.csdn.net/qq_ ......
Components Connected

构建React-app应用时create-react-app卡住超慢的解决办法

解决方案是换源,这个解决方法是从网上找到的,特此整理过来收藏一下。虽然平常使用cnpm来代替npm,但也只是使用新的指令而已。而在寻求create-react-app的相关配置希望修改registry时失败了,最后发现create-react-app指令默认调用npm,于是直接把npm的regist ......
create-react-app React-app app 办法 create

TypeScript 报错:Type '({ filename: string; createTime: string; filePath: string; fileId: number; } | undefined)[]' is not assignable to type 'PiFile[]'.

问题: 因为TypeScript不支持直接给一个接口类型的变量 赋一个未知的值。 如 const a:A = { name:'s' }; 你需要给这样的对象或数组值使用as 指定一个类型。 正确写法: const a:A = { name:'s' } as A; 数组写法一样: const a:A[ ......
string 39 TypeScript createTime assignable

论Vue和React的不同之处

论Vue和React的不同之处 Vue 和 React 都是用于构建 UI 界面的流行框架。 它们的哲学也有很多相似的地方,我们可以认为这些特性是流行前端框架的一个趋势。它们是: 组件化。将结构、样式、脚本进行耦合,让界面一部分区域能够独立出来,并可以提供复用; 声明式。摒弃了 JQuery 那种手 ......
React Vue

typescript vue3 VueDraggable 报错 Uncaught TypeError: Cannot read properties of null (reading 'element')

Uncaught TypeError: Cannot read properties of null (reading 'element') nnot read properties of null (reading 'index') 错误写法 就是说子组件需要用div包着,你用其他东西,他无法添加 ......

Angular 复习与进阶系列 – Component 组件 の Lifecycle Hooks

前言 我们在 这篇 和 这篇 中已经学习了几个基本的 Lifecycle Hooks. 分别是 constructor OnInit AfterContentInit AfterViewInit OnDestroy OnChanges 这篇我们会把其余的 Lifecycle Hooks 都学完. I ......
组件 Component Lifecycle Angular Hooks

TypeScript:高级类型

class类型 class类型,和Java差不多。 class Person { name: string; age: number = 0; } let person = new Person(); 构造函数 class Person { name: string; age: number = 0 ......
TypeScript 类型

TypeScript:函数兼容性问题

函数兼容性 大家在JS中经常可以看到这样的代码: lisr.forEach( (item) => {}); lisr.forEach( (item,index) => {}); 就是()的参数有时是可以省略的,而这个正式函数的兼容性性质。说白了就是: 多的函数 = 少的函数;参数少的函数可以赋值给参 ......
兼容性 TypeScript 函数 问题

React-DnD的简要使用方法与API文档

前提 它这个官方文档贼难进去,而且第一次看的时候也不太好理解,这篇文章就把一些常用的内容记下,希望能帮助到大家。本篇文章参考的是16.0.1版本 npm i react-dnd 1 简单示例 先不说具体API,来看下常用示例~ 1.1 useDrag:让DOM允许拖拽 import React fr ......
简要 使用方法 React-DnD 文档 方法

React 08 day

react内部3个阶段: schedule阶段 render阶段(beginWork completeWork) commit阶段(commitWork) commit阶段的3个子阶段 beforeMutation阶段 mutation阶段 layout阶段 当前commit阶段要执行的任务: fi ......
React day 08

TypeScript:常用类型约束

JS已有的数据类型如number、string、null....但并没有进行类型限制 所以,TS在支持JS全部类型的类型注解基础上,自己还加了一些新类型和新类型注解。 JS已有类型 基础类型:number , string ,boolean , null, undefined, symbol 对象类 ......
TypeScript 常用 类型

TypeScript:字面量类型

我是做Java的,看到这个字面量类型震惊我三观,原来设计类型可以这么草率。 先说吧,字符串、数字、对象、布尔类型的常量值,可以作为字面量类型。是的,是常量值作为类型。举个下面例子: const name:'zhangsan' = 'zhangsan' const age:18 = 18 const ......
字面 TypeScript 类型

TypeScript:类型断言

TS中有类型推断的机制,就是你不指定常量类型,TS会自动帮你推动,如下: 但他这种推断机制,是基于高层的父元素,很多子元素的方法和属性使用用不到,这样我们得手动的进行类型断言,使用 [as 元素类型],如下: 如果你不知道此标签的元素类型,可以通过下面的方式: 找到自己知道类型的标签类型,指着这个标 ......
TypeScript 类型

关于react的Tabs组件中TabPane的bug

今天解决了我自认为一个很不起眼的Bug。 我的Tabs下面有5个tabPane,并且这几个tabPane共用了一个search组件,今天遇到了一个bug,就是这几个组件使用公共查找组件的时候,前一个组件的值会影响下一个组件的值。 找了半天发现,原来我应该在父组件Tabs中定义一个useState的状 ......
组件 TabPane react Tabs bug

React 使用NPM创建项目

React 使用NPM创建项目 虽然研究 React 已经有一段时间,但之前写 Demo 都是直接新建文件夹然后在里面写 html 和 js,究其原因还是因为之前用不了 NPM。现在终于是把 NPM 的问题解决了(从 IDEA 上 copy 了个代理的地址),这下才能算是真正的 DEV 环境。 但有 ......
项目 React NPM

React国际化方案及示例

​背景: 随着公司走向国际,那么需要对产品进行国际化语言的预言处理。该预言方案主要是为了满足跨国企业和全球用户的需求而设计的。随着公司步入国际领域,该方案将有助于提高公司的国际化水平和竞争力。在国际化项目中,需要考虑不同语言、文化和地区的用户习惯和需求,确保产品的功能和内容能够在全球范围内无缝运作和 ......
示例 方案 国际 React

Angular 复习与进阶系列 – Component 组件 の Dependency Injection & Query Elements

前言 在 Angular 复习与进阶系列 – Dependency Injection 依赖注入 的结尾, 我们提到了如何在项目中, 组件中使用 DI. 但那些只是一小部分而已. Angular DI 在组件内的用途非常广, 而且挺复杂的. 这篇我们将详细的去理解它. ......

TypeScript:可选参数

TS中定义的函数参数,默认都是必传的,不然编译不过。如果想指定参数是可选,在参数后加?即可,如下: function add(num1?: number,num2?: number): void{ } 注意:可选参数后面是不能有必填参数的,举个反例: function add(num1?: numb ......
TypeScript 参数

Flutter/React native/un-app

Flutter是Google开源的构建用户界面(UI)工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、Web、桌面和嵌入式平台。 [5] Flutter 开源、免费,拥有宽松的开源协议,适合商业项目。 Flutter可以方便的加入现有的工程中。在全世界,Flutter 正在被越来越 ......
Flutter native un-app React app