React
文章平均质量分 61
从头撸一遍react知识点
今天备忘录了吗
这个作者很懒,什么都没留下…
展开
-
【React】Hooks入门教程(二、React最常用的四种钩子)
这个 API 是 React 的未来,有必要深入理解。本文谈谈我的理解,简单介绍它的用法,帮助大家快速上手。阅读本文需要有 React 基础。如果你还没学会 React,可以先看一下它的教程。[更新] 我后来又写了一篇《轻松学会 React 钩子:以 useEffect() 为例》,补充了对 Hooks 设计思想的解释,建议大家可以先阅读那篇文章。一、组件类的缺点React 的核心是组件。v16.8 版本之前,组件的标准写法是类(class)。下面是一个简单的组件类。import React.转载 2021-12-13 10:43:43 · 584 阅读 · 0 评论 -
【React】Hooks入门教程(一、轻松学会React钩子)
我本来不想碰它们了,觉得框架一直在升级,教程写出来就会过时。但是,最近我逐渐体会到 React 钩子(hooks)非常好用,重新认识了 React 这个框架,觉得应该补上关于钩子的部分。下面就来谈谈,怎样正确理解钩子,并且深入剖析最重要的钩子之一的useEffect()。内容会尽量通俗,让不熟悉 React 的朋友也能看懂。欢迎大家参考我以前写的《React 框架入门》和《React 最常用的四个钩子》。一、React 的两套 API以前,React API 只有一套,现在有两套:类(clas.转载 2021-12-13 10:36:53 · 768 阅读 · 0 评论 -
Dva: loading模块引入及实践
dva 中页面过渡效果封装的很好,下面介绍常用的两个 js 库。之前对 dva-loading 理解存在误区,认为只要在 index.js 中配置一下就没事了,事实上 dva-loading 只是提供当前异步加载方法的状态(异步加载中状态为 true,异步加载完成状态为 false),对应加载样式由各自组件自己控制,如:Antd 中 Table 组件自身的 loading 属性。并添加完整流程示例代码。一、过渡组件 dva-loading传统做法比如请求一个用户页面,刚进去的时候由于要去服务器请求数转载 2021-11-23 13:55:37 · 1436 阅读 · 0 评论 -
debounce函数的相关实例分析(实现防抖动)
一、前言以下场景往往由于事件频繁被触发,因而频繁执行DOM操作、资源加载等重行为,导致UI停顿甚至浏览器崩溃。window对象的resize、scroll事件拖拽时的mousemove事件射击游戏中的mousedown、keydown事件文字输入、自动完成的keyup事件实际上对于window的resize事件,实际需求大多为停止改变大小n毫秒后执行后续处理;而其他事件大多的需求是以一定的频率执行后续处理。针对这两种需求就出现了debounce和throttle两种解决办法。转载 2021-11-23 10:17:59 · 522 阅读 · 0 评论 -
setState机制、源码以及回调用法
1. setState定义setState作为react中的重要部分,将对组件 state 的更改排入队列,并通知 React 需要使用更新后的 state 重新渲染此组件及其子组件。这是用于更新用户界面以响应事件处理器和处理服务器数据的主要方式。2. setState是同步还是异步?setState只在合成事件和钩子函数、生命周期函数中是“异步”的,在原生事件和setTimeout 中都是同步的setState很多时候并不是立即执行,所以在setState之后立即调用state可能不会得到理想的原创 2021-11-22 15:47:07 · 1880 阅读 · 0 评论 -
react.js antd-table 可编辑表格验证
最近做需求,需要在一个表格里编辑字段,验证提交.项目用的是antd的组件,看了下table组件,官网有给编辑的例子,好咧,拿过来用了下,发现问题.官网的实现写得很复杂,而且最主要的一点是只能在输入框获取焦点时调验证规则.但是在表格外面不能调用验证方法调用.与实际需求不符合,于是自己写了一个,记录下来。需求: 表格输入时验证字段,提交时点击验证字段主要思路: 先写好字段验证错误的样式,设置一个字段,通过字段动态增加样式来实现验证提示的效果这个表格是放在一个弹框里的,弹框组件updateForm.ts转载 2021-11-15 16:46:10 · 1547 阅读 · 0 评论 -
Refs 访问 DOM 节点
什么是RefsRefs 提供了一种方式,允许我们访问 DOM 节点或在 render 方法中创建的 React 元素。DOM节点获取焦点以下代码实现:点击按钮,Input框获取焦点class CustomTextInput extends React.Component { constructor(props) { super(props); // 创建一个 ref 来存储 textInput 的 DOM 元素 this.textInput = React.createRef()原创 2021-11-15 16:36:18 · 617 阅读 · 0 评论 -
React及时更新状态
问题:在dispatch请求接口数据 或者 更新state状态的时候,更新不及时,导致后方代码对该数据进行操作时出现错误。做法://1在你想及时更新的代码外层套一个setTimeout,时间设置为0该方法将内代码放在进程的最后执行,执行完毕后才进行下一步操作。setTimeout(()=>{ this.setState({ }) this.props.dispatch({ })},0)//2状态更新之后,在后方使用新状态的地方重新获取数据(在页面不刷新的状态下,通过重新this原创 2021-08-20 18:10:33 · 1047 阅读 · 0 评论 -
2021-07-20 项目 - 关于Antd表单校验
简要的说明一下项目中用到的校验前提紧要:React,Antd3.0,表单校验用Form.create({1})(2)包装组件1: 附加的配置项在1中写入 name:'Doctor_self',那么包装组件中的表单字段id就有了Doctor_self前缀详见 Form-API2: 组件名const App = Form.create({ name: 'Doctor_self' })(Doctor);export default App;包装之后,组件就有了this.props.form下原创 2021-07-20 17:56:14 · 389 阅读 · 0 评论 -
Redux --- 简单实现一个todoList (4) --- redux-thunk中间件
比如在Dispatch一个Action之后,到达reducer之前,进行一些额外的操作,就需要用到middleware(中间件)。在实际工作中你可以使用中间件来进行日志记录、创建崩溃报告,调用异步接口或者路由。目的有了react-thunk后,我们可以把 TodoList.js 中的 componentDidMount 业务逻辑放到这里来编写。也就是把向后台请求数据的代码放到actionCreators.js文件里。这样所有的业务逻辑都在redux中,方便集中管理。步骤1安装yarn a.原创 2021-01-11 15:38:47 · 142 阅读 · 0 评论 -
Redux ---简单实现一个todolist (3) - 用axios获取数据
之前的列表数据在reducer中写死了。这篇文章药实现从后端接口获取了数据,如何可以放到Redux的store中。1用 mockAPI 模拟出数据,复制地址https://5f48b1de57a10f001600ddf3.mockapi.io/api/todoList21.在组件的生命周期中获取到以上数据 – 2. 通过action吧数据发送到reducer – 3. 在reducer中进行列表数据的初始化componentDidMount(){ axios.get("https原创 2021-01-11 14:05:41 · 176 阅读 · 0 评论 -
Redux ---简单实现一个todolist(2)
目的进行优化处理,将可以集中管理以及太过于冗杂的代码合并到一个文件目录在原来的基础上,/store新添加两个文件actionTypes 和actionCreator将所有的action的type移动到actionTypes把所欲的action的请求移动到actionCreator便于管理和修改代码actionTypesexport const CHANGE_INPUT = 'changeInput';export const ADD_ITEM = 'addItem';export c原创 2021-01-07 13:39:11 · 142 阅读 · 0 评论 -
Redux ---简单实现一个todolist (1)
目录其中 /store 包含index.js和reducer.js1首先完成没有任何功能的UI页面TodoListimport React from 'react'import {Input, Button,List } from 'antd';import store from './store'; //引入export default class TodoList extends React.Component { constructor(props){原创 2021-01-07 10:54:21 · 370 阅读 · 0 评论