自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吃瓜群众的博客

菜鸟菜鸟

  • 博客(416)
  • 资源 (1)
  • 收藏
  • 关注

原创 npm和yarn及pnpm区别,以及使用的对比

npm和yarn的区别,我们该如何选择?

2019-04-13 20:23:39 3227

原创 vue+element-自定义指令,防止重复提交及重复发送http请求;节流throttle与防抖debounce举例说明

方法一、控制标签全局directive的写法// 提交以后禁用按钮一段时间,防止重复提交import Vue from 'vue';Vue.directive('noMoreClick', { inserted(el, binding) { el.addEventListener('click', e => { el.classList.add('is-d...

2018-12-11 14:10:01 7960 1

原创 使用node内置模块实现文件复制到另外一个目录

使用node内置模块复制文件夹和文件到指定目录

2023-06-26 21:01:25 654

原创 canvas实现文字换行

boss直聘附件简历预览canvas如何换行的?

2023-03-13 21:36:52 593 1

原创 链式调用demo

所谓链式调用就是调用完一个函数后还能再继续调用其它函数,这样大大减少了代码量,尤其是项目比较大的时候,逻辑集中清晰明了,且易于查看和修改。

2023-01-29 21:18:24 262

原创 setInterval倒计时以及解决倒计时误差

setInterval指定的是“开始执行”之间的间隔,并不考虑每次任务执行本身所消耗的时间。比如,setInterval指定每 100ms 执行一次,每次执行需要 5ms,那么第一次执行结束后95毫秒,第二次执行就会开始。可以从图中明显的看出打印的结果,大多数时间每次相差结果不等于1000,因此使用setInterval长期下去,误差会很大。为了确保两次执行之间有固定的间隔,可以不用setInterval,而是每次执行结束后,使用setTimeout指定下一次执行的具体时间。

2022-12-27 23:52:29 1149 1

原创 DatePicker(disabledDate)最小日期和最大日期限制

DatePicker(disabledDate)最小日期和最大日期限制

2022-12-09 15:29:13 816

原创 React modal自定义 openModal

React modal自定义 openModal

2022-12-07 16:05:37 492

原创 react useModal自定义弹窗代码

react useModal自定义弹窗代码

2022-12-07 10:28:43 603

原创 nginx 中的proxy_pass使用 demo

nginx代理的使用demo

2022-10-13 16:51:49 591

原创 vue3异步加载js文件

vue3异步加载js文件

2022-08-18 22:04:36 1874

原创 阿里云ali-oss上传图片

代码-阿里云ali-oss上传图片。

2022-07-19 11:26:40 392

原创 退款详情列表显示--纵向退款进度条显示

dom代码import { View } from "@tarojs/components"import { formatDate } from '@/utils/timeFormat'import './index.less'export default (props) => { return <View className='steps-box'> {props.list?.length && props.list.map((item, index).

2022-05-30 10:13:24 195 1

原创 数组排序-按照数组每项的排序属性进行排序,空的自动按照默认顺序进行填充

求按照某一项的index排列顺序将其进行排序解决思路:新建一个长度为原数组长度的空数组`将这个空数组先填入有排序属性index的item再依次填充剩下的item关键在于对脚坐标的取值应先取出有index的排序坐标再过滤出不含index的排序脚坐标再填充方法实现// 根据 attr 进行排序export function sortByIndex(searchMeta, attr='index') { // 新建一个空数组 const arr = new Array(s

2022-04-14 14:43:01 346

原创 vue2如何给孙辈传递slot,孙如何给父传递参数

vue2如何给孙辈传递slot,孙如何给父传递参数1、父亲辈parent.vue<!-- 引用子组件 --><child-list> <template slot="search_item_display_time" slot-scope="{search}"> <div>{{search}}</div> </template></child-list>2、子辈ch

2022-04-13 16:00:43 3043

原创 分享海报-链接图片如何处理

先将远程图片链接转为base64格式在页面上显示则可用html2canvas生成海报canvasImg.js// 第一个参数是图片的URL地址,第二个是转换成base64地址后要赋值给的img标签export async function getBase64Image (url) { return new Promise((resolve)=>{ let image = new Image() image.src = url + '?v=' + Ma.

2022-01-19 11:18:18 386

原创 nginx代理常见问题

1、http200,但是返回We’re sorry but XXXX doesn’t work properly without JavaScript enabled. Please enable it to continue.可能原因server { listen 80; server_name localhost; client_max_body_size 20m; location / { root /usr/share/ngin

2022-01-11 14:45:14 2436

原创 图标动画-大小动画-css

.vote-prize-btn { width: 45px; height: 90px; position: absolute; top: 23px; right: 0; animation: mymove 1s infinite; animation-direction: alternate; animation-timing-function: ease-in-out; }@keyframes my

2021-12-30 14:22:13 246

原创 用vue3实现抽奖模板设置

效果图代码<template> <div> <h4>抽奖模板设置</h4> <div class="container"> <ul class="ul-box"> <li v-for="(item,index) in list" :key="item.id" @click.stop="handleClickItem

2021-12-24 11:11:34 675

原创 抽奖的功能实现html,css,js

效果图代码实现<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <t

2021-12-15 16:28:38 1179 1

原创 useEffect使用注意事项

useEffect使用注意事项前言1、依赖项是函数如何改进?用useCallback2、依赖项是数组如何解决?useRef3、将对象作为依赖如果修复这个问题?用useMemo 的 hook前言只有当依赖关系被改变时,useEffect hook 才会触发回调函数。而且它使用浅比较法来比较 hooks 的值。1、依赖项是函数import './App.css';import { useEffect, useState } from 'react';function App() { const

2021-09-22 10:56:57 1603

原创 微信小程序-灰度发布

总所皆知,微信小程序分为三个环境,开发环境、体验环境、生产环境。大多时候,体验环境作为测试环境,在上线的时候切到生产环境往往有一些数据等环境切换导致的bug。这个时候我们希望出现一个预生产环境。他运行的是生产环境一模一样的数据。。但是我们不希望这个环境被其他用户看到。这个时候灰度发布就起作用了需要注意的是,小程序第一次发布不能进行灰度发布。必须第二次及以后才能灰度发布。而且,小程序审核通过后才能灰度发布。灰度发布可以指定某些微信账号才能看到这个灰度发布版本(预生产版本)...

2021-09-14 17:03:16 2967

原创 iPhone12打开webview闪退或者白屏

解决办法:排除法1、先测试iPhone12打开其他嵌入的webview页面,无问题,继续下一步2、修改嵌入的webview代码,删除无用代码,然后重新部署测试,无问题,继续下一步3、检查包裹webview组件的代码,最后一个删除测试,找到是SafeAreaView导致,删除SafeAreaView的包裹代码后能正常打开。...

2021-07-26 14:26:51 1001

原创 比较两个数组,将新数组中和旧数组不同的,过滤出来

比较旧请求list和新的请求list对比,将新的数据过滤出来到resultListimport _ from "lodash";const oldList = [{commentId:1},{commentId:2},{commentId:3},{commentId:4},{commentId:5},{commentId:6},{commentId:7},{commentId:8}];const newList = [{commentId:5},{commentId:6},{commentId:7}

2021-07-15 16:11:56 600

原创 将base64格式的图片下载到本地

先将base64转为file,然后再利用a标签下载<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1

2021-07-06 09:20:05 16053 1

原创 手机屏幕弹幕纵向滚动,添加弹幕实时滚动html demo

手机屏幕弹幕纵向滚动,添加弹幕实时滚动<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"&gt

2021-07-03 12:24:19 609

原创 2021-05-29

最近好久没写博客是因为做了个小手术休假了很久,然后很多知识也将近一个月没学习了,有一点点忘了,不过辞职后现在得开始找工作了得抽空看下。。间隙期间,我现在真的有点想去体验一下比如做服务员的辛苦,否则我不可能懂得珍惜程序员的幸福生活...

2021-05-29 00:15:29 116 1

原创 ant.design上传问题:Upload file.status is always being uploading

file状态一直未uploading对于受控模式,你应该在 onChange 中始终 setState fileList,保证所有状态同步到 Upload 内。类似这里的写法:比如// goodonFileChange(fileList) { if ( ... ) { ... } else { ... } // always setState this.setState({ fileList: [...fileList] });}![在这里插入图片描述](

2021-04-20 11:09:12 646

原创 TypeScript更多用法-常见工具类型(Utility Types)

1、Partial构造一个所有属性都Type设置为optional的类型。该实用程序将返回一个表示给定类型的所有子集的类型。2、Required构造一个类型,该类型由Typeset的所有属性设置为required3、Readonly构造一个所有属性都Type设置为的类型readonly,这意味着无法重新分配所构造类型的属性。4、Record<Keys,Type>构造一个对象类型,其属性键为Keys,属性值为Type。该实用程序可用于将一个类型的属性映射到另一个类型。5、Pick&

2021-04-16 10:54:47 726

原创 React.memo 减少React重新渲染

当父组件发生改变时,传递给子组件的props不变,子组件在相同 props 的情况下渲染相同的结果。那么子组件没必要重新渲染。通过React.memo可以提高性能import React, { useState } from 'react';function ChildComponent( props: any ) { console.log( 'child render' ); const { data: { num } } = props; return <div>

2021-04-07 16:07:54 467

原创 React Function实时获取输入框值:React Hook - useRef

修改输入框后,send,function 组件捕获渲染的值总是上一次send的值,如何解决这个问题export default function ProfilePage() { const [message, setMessage] = useState(''); const showMessage = () => { console.log('message: ' + message); //获取的永远是上一次send之前的值 点击前输入框的值 }; const hand

2021-04-07 10:07:29 2391

原创 React-高阶组件的使用说明

概念高阶组件(HOC)是 React 中用于复用组件逻辑的一种高级技巧。HOC 自身不是 React API 的一部分,它是一种基于 React 的组合特性而形成的设计模式。具体而言,高阶组件是参数为组件,返回值为新组件的函数。组件是将 props 转换为 UI,而高阶组件是将组件转换为另一个组件。HOC 在 React 的第三方库中很常见,例如 Redux 的 connect 和 Relay 的 createFragmentContainer。举例说明常用userInfo的数据全局共享i

2021-04-06 12:04:08 188

原创 ant design中的Form.List 如何支持dependencies

1、单个官网例子:打开2、多个Form.List<Form name="dynamic_form_nest_item" onFinish={ onFinish } autoComplete="off"> <Form.List name="users"> { ( fields, { add, remove } ) => ( <> { fields.map( ( field ) => ( <S

2021-04-01 15:38:22 4178 1

原创 (React ant design Warning): dispatch: settings/changeSetting should not be prefixed with names

原因:在namespace为’settings’的js文件中调用dispatch,不需要加上settings前缀,解决办法:删除settings/即可import { Reducer, Subscription } from 'umi';const SettingModel= { namespace: 'settings', state: defaultSettings, reducers: { changeSetting(state = defaultSettings, { p

2021-03-03 14:26:47 596 1

原创 用ant.design实现一个form table,实现在table中输入和校验。并且获取table列表值

用ant.design实现一个table表格,实现输入和校验。能够实时获取form值实现效果如图代码如下ListTableForm.tsximport React, { useEffect, useState } from "react";import { Form, Table } from 'antd'import { MinusCircleOutlined, PlusCircleOutlined } from "@ant-design/icons";import styles f

2021-02-09 09:48:24 7728 2

原创 umi ant.design 项目打包后@ant-design文件占据内存太大

现在遇到一个问题,npm run build后打包文件由30M,用npm run analyze "analyze": "cross-env ANALYZE=1 umi build",分析后发现是图标库占据内存的原因。

2021-02-04 17:22:20 1160

原创 基于ant.design做一个可编辑的table表格,且实现可校验样式、增加、删除数据

主要利用Form.List的field进行拓展,结合table使用嵌套表单字段需要对 field 进行拓展,将 field.name 和 field.fieldKey 应用于控制字段。// 只贴关键代码const onFinish = (values)=>{ console.log(values) // 可以得到table}<Form initialValues={ {table:[{name:'lily'},{name:'lisa'}]} } onFinish={ onFi

2021-02-03 17:45:40 5126 4

原创 代码整洁之道-多个if else代码的优化

1、利用对象let a=0,b=1;let result = '';if(a===1){ if(b===1){ result='a' } if(b===0){ result='b' }}if(a===0){ if(b===1){ result='c' } if(b===0){ result='d' }}优化为let obj = { 1: { 0: 'a', 1: 'b', }, '-1': {

2021-01-28 09:19:05 333

转载 执行上下文栈

函数多了,就有多个函数执行上下文,每次调用函数创建一个新的执行上下文,那如何管理创建的那么多执行上下文呢?JavaScript 引擎创建了执行上下文栈来管理执行上下文。可以把执行上下文栈认为是一个存储函数调用的栈结构,遵循先进后出的原则。从上面的流程图,我们需要记住几个关键点:JavaScript 执行在单线程上,所有的代码都是排队执行。一开始浏览器执行全局的代码时,首先创建全局的执行上下文,压入执行栈的顶部。每当进入一个函数的执行就会创建函数的执行上下文,并且把它压入执行栈的顶部。当前函数执行

2021-01-18 12:26:33 73

转载 Document - Web API 接口参考 | MDN

Document 接口表示任何在浏览器中载入的网页,并作为网页内容的入口,也就是DOM 树。DOM 树包含了像table,body这样的元素,以及大量其他元素。它向网页文档本身提供了全局操作功能,能解决如何获取页面的 URL ,如何在文档中创建一个新的元素这样的问题。Document接口描述了任何类型的文档的通用属性与方法。根据不同的文档类型(例如HTML、XML、SVG,...),还能使用更多 API:使用"text/html"作为内容类型(content type)的 HTML 文档,还实...

2021-01-16 22:32:41 952

react源码-简易的demo-通俗易懂

react的源码,来自于B站小马哥,链接https://www.bilibili.com/video/BV1cE411B7by?from=search&seid=4087059043161393879

2020-03-31

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除