- 博客(32)
- 问答 (1)
- 收藏
- 关注
原创 memo useMemo useCallback
如果每一个组件都用 memo 去包裹一下,那么对浏览器的开销就会很大,本末倒置了,项目中可以针对刷新频率高的组件,根据实际情况,使用 memo 进行优化。的地方,可以使用 useMemo 来优化,但大多数情况下,计算结果的开销还没有使用 useMemo 的开销大,应视情况而定。,当父组件重新渲染时,会重新在内存中开辟一个地址赋值给 result,此时地址发生改变,子组件会重新渲染。memo 只会对新旧 props 做浅比较,所以对于引用类型的数据如果发生了更改,需要返回一个新的地址。,需要在父组件中使用。
2025-02-24 11:25:07
279
原创 常见的http 状态码(status)
303 (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。307 (临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。通常,这只是暂时状态。413 (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。414 (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
2023-07-11 20:01:19
1030
原创 导出文件 application/json 传参
上述代码中引入了 file-saver 插件,使用该插件进行文件的下载,downloadExcelDemo 是请求后端提供的获取文件的接口。接口写法如下:request 是使用了umi-request 进行的封装。
2023-06-30 11:43:47
255
原创 前端加载视频直播流
1.flv格式的视频import React, { useEffect, useRef, useState } from 'react';import { Icon } from 'antd';import flvjs from 'flv.js';import cls from 'classnames';import styles from './index.scss';const VIDEO_MESSAGE = { LOADING: '正在载入视频...', FAILED: '视
2022-04-27 18:03:24
875
原创 苹果机轮播图阻止左滑退出
1、轮播图代码如下,需在外层包裹id为Carousel的元素import { useEffect } from 'react';export function usePreventDefaultEvent(id) { useEffect(() => { const Carousel = document.getElementById(id); if (Carousel) { let startX = 0; let startY = 0;
2022-03-28 16:17:39
250
原创 判断运行环境
const sUserAgent = navigator.userAgent.toLowerCase();export const bIsDtDreamApp = sUserAgent.indexOf('dtdreamweb') > -1 // 浙里办APPexport const bIsAlipayMini = sUserAgent.indexOf('miniprogram') > -1 && sUserAgent.indexOf('alipay') > -1; /.
2021-11-30 10:10:45
792
原创 动态修改地址栏传参数
export const changeURLArg = (url, arg, arg_val) => { // url当前地址window.location.href // arg传参字段 例如?key={arg_val} // arg_val传参值 const pattern = `${arg}=([^&]*)`; const replaceText = `${arg}=${arg_val}`; if (url.match(pattern)) { let .
2021-11-11 18:01:46
370
原创 获取浏览器地址栏参数
一、很对时候在路由跳转时或者在打开一个运维配置的服务时,地址上传入我们需要的参数,下面我就依照我项目中的案例讲一下获取参数的简单方法1、例如我们当前的地址是这样的 我们在控制台打印一下location接下来我们封装一个方法// 获取参数的方法getSearchParams(search) { const searchParams = {} const searchStr = search.substring(1) // 如果location中有search...
2021-10-28 15:48:09
1753
原创 react+antd的Upload 通过证书 上传大文件视频至oss(上传视频)
主要代码1. form表单的upload组件引入 <Form.Item label="上传视频"> {getFieldDecorator('url', { getValueFromEvent: e => normFile(e, 500), // rules: [{ required: true, message: '请上传' }], valuePropName: 'fileList'
2021-04-23 14:07:48
3063
原创 滚动分页获取数据
const [rdPageNum, setRdPageNum] = useState(1); <Card list={rdList} loading={rdLoading} hasMore={rdHasMore} total={countData.rd} scrollEv={() => { dispatch({ type: '...
2021-03-23 16:13:23
171
原创 axios 请求
import axios from 'axios'const { NODE_ENV } = process.env;const extendConfig = { baseURL: NODE_ENV === 'development' ? '/meetingServer' : '/admin-server',};const request = axios.create({ ...extendConfig, timeout: 1000, headers: { 'X-Custom-.
2021-03-16 17:58:24
161
原创 axios 请求下载文件
import axios from 'axios';axios.post(url, { ...getDataDefault(), reqBody: { ...params }, }, { responseType: 'blob' }) .then(function (response) { const { data } = response let type = data.type const relType...
2021-02-05 22:20:54
311
原创 Git修改commit的提交信息
修改commit分为两个阶段push到远程之前(commit之后就打算修改) push到远程之后(可以称为修改历史提交信息)一、commit之后修改辅助信息git commit --amendgit commit –amend既可以对上次提交的内容进行修改,也可以修改提交说明。利用vim的语法,按键 -> i进入编辑模式,修改对应文字内容ESC退出编辑模式按键 -> :wq强制保存并退出即可二、push之后修改辅助信息如果要修改历史的版本信息(非最新..
2021-02-02 16:07:48
373
原创 umi umijs 代理https时应该设置secure属性
outputPath: './dist',publicPath: './',proxy: {'/admin-server': {target: 'https://admin-szjsc.thecityos.com',changeOrigin: true,secure: false,},},
2021-02-01 09:59:09
1722
原创 table 合并单元格 (dom)
https://blog.youkuaiyun.com/ag_wenbi/article/details/83828025
2020-12-29 18:20:32
301
原创 react antd table 自动合并单元格
项目场景:前端开发往往会遇到表格处理的问题,例如合并单元格,该文章给处理自动合并单元格的方法问题:例如我们想把下面的表格做出合并:班级 姓名 班主任 语文 数学 高三(1) 张三 郝老师 89 89 高三(1) 王五 郝老师 89 89 高三(2) 李四 张老师 89 89 高三(2) 小敏 张老师 89 89 高三(1) 小米 郝老师
2020-10-09 10:35:31
1243
5
原创 数组的常用方法
/*数组的常用方法专门用来操作数组的方法1. push() 方法作用: 向数组的后面追加数据语法: 数组.push(你要追加的数据1, 你要追加的数据2, ...)返回值: 追加完毕数据以后, 数组的长度2. pop() 方法作用: 删除数组的最后一个数据语法: 数组.pop()返回值: 被删除的那个数据3. unshift() 方法作用: 向数组的最前面添加数据语法: 数组.unshift(你要添加的数据1, 你要添加的数据2, ...)返回值: 添
2020-09-17 11:17:02
295
原创 邻接表的创建与深搜
#include#include#define MAX 20 //最多顶点个数typedef struct Arc{ int adjvex; Arc *next; int other;}Arc;int visited[MAX];typedef struct Node{ char date; Arc *firstarc;}Node;
2015-11-29 21:58:25
309
原创 无向图邻接矩阵的创建与深搜
#include#include#define MAX 10 //最多顶点个数#define ok 1int visited[MAX];typedef struct ArcNode{ int adj; } ArcNode;typedef struct{ char vertex[MAX]; ArcNode arcs[MAX][MA
2015-11-29 17:49:43
684
原创 链栈 多链栈
#include#include#define M 10typedef struct node{int date;struct node *next;}node;void put(node *top[M]){int x=-1,i;node *temp;while(x!=0){ printf("请输入压栈的值和被压入元素的栈i:\n
2015-11-07 20:24:21
551
原创 多栈共享
#include#define M 100typedef struct{int ste[M];int top[2];}node;void initlist(node *s){s->top[0]=-1;s->top[1]=M;}void push(node *s){int i,x=-1;while(x!=0){printf("请输入
2015-11-07 20:22:43
484
原创 链队列
#include#include#define TRUE 1;#define FALSE 0;typedef struct node{int date;struct node *next;}LQ;typedef struct{LQ *front;LQ *rear;}Lq;void inqu(Lq *Q)//初始化{Q->front=(
2015-11-07 20:17:12
306
原创 双向链表
#include#includetypedef struct node{int date;struct node *next;struct node *prior;}node;void inlist1(node *l){node *s,*p=l;int a;printf("请输入链表值l个数:"); scanf("%d",&a);pri
2015-11-07 20:13:57
270
原创 循环链表
#include#includetypedef struct node{int date;node *next;}node;void inlist1(node *La){node *s,*p=La;int a;printf("请输入链表值La个数:"); scanf("%d",&a);printf("请输入链表值La:");for(in
2015-11-07 20:12:15
297
原创 用扩展先序创建二叉链表
#include#includetypedef struct Node{char date;struct Node *lchild;struct Node *rchild;}node;void inlist(node *&l){char ch;ch=getchar();if(ch=='.')l=NULL;else{l=(node *)
2015-11-07 20:08:48
1609
原创 苹果
苹果时间限制:3000 ms | 内存限制:65535 KB难度:3描述ctest有n个苹果,要将它放入容量为v的背包。给出第i个苹果的大小和价钱,求出能放入背包的苹果的总价钱最大值。输入有多组测试数据,每组测试数据第一行为2个正整数,分别代表苹果的个数n和背包的容量v,n、v同时为0时结束测试,此时不输出。接下来的n行,每行2个
2015-08-05 16:24:38
280
原创 括号配对
描述现在,有一行括号序列,请你检查这行括号是否配对。输入第一行输入一个数N(0输出每组输入数据的输出占一行,如果该字符串中所含的括号是配对的,则输出Yes,如果不配对则输出No样例输入3[(])(])([[]()])样例输出NoNoYes#includeconst int N = 10005;int sta[
2015-08-05 15:50:25
319
原创 背包问题
题目106题目信息运行结果本题排行讨论区背包问题时间限制:3000 ms | 内存限制:65535 KB难度:3描述现在有很多物品(它们是可以分割的),我们知道它们每个物品的单位重量的价值v和重量w(1输入第一行输入一个正整数n(1随后有n测试数据,每组测试数据的第一行有两个正整数s,m(1输出输出每组
2015-07-27 16:48:34
300
原创 Color the fence
Color the fence时间限制:1000 ms | 内存限制:65535 KB难度:2描述Tom has fallen in love with Mary. Now Tom wants to show his love and write a number on the fence opposite to Mary’s house. Tom thinks t
2015-07-27 09:56:36
427
原创 心急的C小加
描述C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则需要消耗一个单位的时间。因为急着去约会,C小加想在最短的时间内把木棒处理完,你能告诉他应该怎样做吗? 输入第一行是一个整数T(1输出处理这些木棒的最短时间。样例输入3 5
2015-07-20 20:30:39
268
原创 疯牛
描述农夫 John 建造了一座很长的畜栏,它包括N (2 但是,John的C (2 输入有多组测试数据,以EOF结束。第一行:空格分隔的两个整数N和C第二行——第N+1行:分别指出了xi的位置输出每组测试数据输出一个整数,满足题意的最大的最小值,注意换行。样例输入5 312849样例输出3#include
2015-07-20 15:55:46
390
空空如也
处理机调度算法实验报告
2016-05-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人