typescript elements useref react

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

【vue3-element-admin】Husky + Lint-staged + Commitlint + Commitizen + cz-git 配置 Git 提交规范

整合 Husky + Lint-staged + Commitlint + Commitizen + cz-git 并配置的 pre-commit 和 commit-msg 两个钩子分别实现 Git 提交前代码检测和 Git 提交信息规范。 ......

完整实现React day09

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

TypeScript:交叉类型

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

【vue3-element-admin】ESLint+Prettier+Stylelint+EditorConfig 约束和统一前端代码规范

通过ESLint 检测 JS/TS 代码、Prettier 格式化代码、Stylelint 检测 CSS/SCSS 代码和配置 EditorConfig 来实现前端代码规范约束和统一。 ......

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

vue-element-admin 动态菜单改造

vue-element-admin 动态菜单改造 vue-element-admin 是一款优秀后台前端解决方案,它基于 vue 和 element-ui实现。开源后台管理系统解决方案项目 Boot-admin的前端模块就是基于vue-element-admin开发而来。 作为一款纯前端的后台界面解 ......

构建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包着,你用其他东西,他无法添加 ......

element的Popover 弹出框组件关闭

封装了个message底部消息提示框。采用了Popover 组件制作。 点击页面某些地方没办法关闭此弹出框。所以写了个右上角的关闭图标,调用组件内部事件:doClose()关闭;doShow()显示 ......
组件 element Popover

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 常用 类型

element 设置选择日期范围短

只能选择今年和去年 <el-date-picker style="width: 100%;" v-model="sgcxForm.year" size="small" type="year" value-format="yyyy" :picker-options="pickerOptions0" p ......
范围 日期 element

TypeScript:字面量类型

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

TypeScript:类型断言

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

Vue.js element-ui

基本使用视频 按需引入视频 7.1移动端常用UI组件库 Vant https://youzan.github.io/vant Cube UI https://didi.github.io/cube-ui Mint UI http://mint-ui.github.io 7.2PC端常用UI组件库. ......
element-ui element Vue js ui

element ui table 触底下拉加载数据

<template> <el-table height="300" :data="tableData" style="width: 100%;"> <el-table-column prop="date" label="Date" width="180"/> <el-table-column pro ......
element 数据 table ui

关于react的Tabs组件中TabPane的bug

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

Element Plus Tree 树 回显

<el-form-item label="菜单权限"> <el-tree :data="navList" ref="treeRef" node-key="menuId" highlight-current=“true” :props="defaultProps" @check="checked" s ......
Element Plus Tree