小tips
文章平均质量分 57
蓝枫秋千
前人栽树,后人乘凉。既然我乘了前人的树,那么就栽更多的树给后人~共勉!
展开
-
前端解决图片跨域问题:net::ERR_BLOCKED_BY_RESPONSE.NotSameOrigin
Control-Allow-Origin' header is present on the requested resource.原创 2022-07-05 13:22:48 · 12267 阅读 · 3 评论 -
chrome无痕浏览模式中使用插件
前言默认情况下,在使用google浏览器的时候,是无法使用插件的,如图本该是插件位置却没有操作那么该如何进行操作呢打开右上角设置中的扩展程序,并点击这个时候你会回到正常浏览模式,接下来找到你想使用的插件,点击详情勾选【在无痕模式下启用此脚本】然后回到你的无痕浏览器,就会发现插件已经可以使用了注意要注意的是,这种情况下,你的插件是会记录你的浏览记录和一些操作的。所以,不能再【为所欲为】了哦,啊哈哈哈!!!...原创 2021-12-03 18:44:56 · 9264 阅读 · 0 评论 -
宝塔计划任务执行周期设置【秒】为定时单位【或者更小】
前言在宝塔的默认执行周期中,最小时间位为【分钟】那么如果我们想尽可能的高频率的触发如何操作呢?步骤先建立一个shell脚本任务,执行周期任选脚本内容设置为如下#!/bin/bashPATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/binexport PATHstep=1for (( i = 0; i < 60; i=(i+step) )); docurl -sS --connect-timeou原创 2021-10-19 21:31:38 · 2356 阅读 · 0 评论 -
antd表单1行使用多个组件(控件)
引言在antd的表单组件中,自己封装好了一系列的函数和高阶函数,自带的样式和方法等都能满足自己的需求。但是各种案例中都只能够是一个控件,并且文档中也说明了:注意:一个 Form.Item 建议只放一个被 getFieldDecorator 装饰过的 child,当有多个被装饰过的 child 时,help required validateStatus 无法自动生成。业务场景那么假如想要有这么一个效果。方案我初步设想的是这样的布局:使用div的flex布局然后发现需要改挺多样式的,并且报原创 2021-08-19 21:40:33 · 3730 阅读 · 1 评论 -
网页复制内容修改(解决复制文本多空格问题,带标注信息(如版权信息))
前言适用需求平时在使用网页复制文本的时候(双击三击或选中复制),有时候会多复制一个或几个空格(常见于换行),在某些有格式要求的时候就很麻烦,因为看不出来有空格或换行在复制网页信息的时候希望能够带上自己的一些信息,比如复制别人博客代码的时候会带上出处信息注意:从别人网页复制信息到自己网页不适用,但可以作为参考使用监听oncopy事件,在触发复制事件之后,修改复制到剪切板的内容document.oncopy = event => { // 获取剪切板内容 let cont原创 2021-01-29 18:34:07 · 2240 阅读 · 3 评论 -
使用chrome进行慢网速测试
前言在开发的时候,有这么一种情况,点击一个按钮调用一个接口生成数据,之后刷新页面,但是由于网络慢的原因,能够多次点击,但是自己的网络模拟不了很慢的情况,怎么办呢?使用chrome进行慢网络模拟测试打开控制台选择network点击如图的Online下拉框弹出如图所示几个选项说明:online:正常的网络Fast3G:相对比较快的3g网络(还是比较慢)Slow3G:相对比较慢的3g网络(已经很慢了)Offline:关闭网络(这个直接将你当前标签页的网络关闭了,不会影响原创 2020-12-22 14:25:18 · 2532 阅读 · 0 评论 -
vscode标签栏只展示一个窗口
前言本来我们的窗口的标签栏是这么分开显示标签的但是突然发现现在变成了一个标签,不会再分开展示了,变成了一个文件名加路径了,这种情况下原来的标签并没有被关闭,只是被折叠了你可以尝试ctrl w或command w关闭当前标签页,仍然还有一个之前打开的标签页但是切换窗口就很不方便了解决方法ctrl shift p或command shift p打开设置搜索窗口,如图搜索setting.json,打开第一个选项搜索json配置文件中是否有workbench.editor.showTabs原创 2020-08-19 19:28:29 · 4949 阅读 · 4 评论 -
关于css module类名未生效的问题
我使用的是umi框架,在为一个元素添加类名后查看Elements,发现class并没有生效然后我猜想是不是我找错dom节点了,然后使用普通的className的写法然后发现这样写类名是可以生效的(只是这种写法不能在css文件中写你的样式)然后再推测是不是种方式只有在使用了的情况下才能够生效,接下来我就在对应的css文件中写了一个样式果然,在这种情况下类名成功的生效了结论在使用css module的情况下,你写的类名如果要生效的话,必须是在使用了的情况下才会加载...原创 2020-08-04 19:08:01 · 2520 阅读 · 2 评论 -
umi项目中报错uncaught at _callee3 at _calle3
起因在使用umi框架的时候,报了下面这个错误,但是错误提示又找不到位置在哪观察network可以发现,有这么一个接口报错了但是其他接口报错也不会出现那样的错误提示呀,然后多看看代码,发现这个接口是写在dva中的原因:在dva的model中有异常抛出或报错,但是没有作处理。如果要看详细原因,请看这位大佬的文章解决方案:如果是只是react项目,引入了dva框架的话,那么在调用dva方法的时候传入一个onError属性const app = dva({ onError(原创 2020-07-30 13:34:00 · 7779 阅读 · 5 评论 -
html小技巧总结(待续中。。。)
select元素重置显示placeholder提示文字效果:开始默认显示placeholder,选择之后显示value,重置之后显示placeholder提示文字,修改的时候初始值为value关键点:重置之后的value需要置为undefined,并且要注意设置了value之后defaultValue不会生效...原创 2020-07-29 13:26:31 · 143 阅读 · 1 评论 -
关于hbuildx程序无法打开的问题
起源平时正常使用的hbuildx,今天突然不能打开了,点击快捷方式也无效,点击软件包中的hbuildx.exe也无法打开,重启电脑,卸载重装都试过了,无法解决问题。原因有可能是配置文件损坏,导致无法启动。解决方案先点击一下安装目录下的reset.bat文件还不行,再试下如下方案, 如下图所示,在地址栏输入%appdata%回车; 在此目录下,找到HBuilder X目录,将此目录删除(如果删除不了,尝试将目录重新命名,然后再删除)如果出现无法删除该目录,原因是项目已经打开,打开任务管理器,原创 2020-07-22 23:16:09 · 2846 阅读 · 0 评论 -
通过配置hosts解决访问github访问慢的问题(或者是展示无法连接ERR_TUNNEL_CONNECTION_FAILED)
hosts文件位置windows系统的hosts文件的位置如下:C:\Windows\System32\drivers\etc\hosts如果是提示没有权限修改hosts文件的话命令行修改权限参考这篇文章图形化界面修改参考这篇文章mac/linux系统的hosts文件的位置如下:/etc/hosts查询github相关网址的ip访问ipaddress地址:https://www.ipaddress.com/逐个搜索网址对应ip如github.com我这里搜索出来的ip是:140.82原创 2020-05-21 18:12:15 · 1146 阅读 · 0 评论 -
使用umi中碰到的一些小问题/技巧
页面路由跳转传参// 传递参数<Link to={{pathname:`/breakpromise-manager/${record.id}/detail`,state:{typeId:record.orgType}}}>{text}</Link>// 页面接收参数let orgType = this.props.location.state.typeId;使用...原创 2020-01-09 22:35:56 · 8676 阅读 · 1 评论 -
continue、break、return关键字区别
continue只能用于循环体中,结束当前循环for() { // 外层for循环 for() { // 内层for循环 if() { continue; } }}在这段代码中,如果if中为真,那么内层for循环if后面的语句将不会执行,继续下一层的内层for循环break用于switch-case语句中,匹配到某一个case后跳出switch判断switch() { case 1: // ...... break; case 1: // ......原创 2020-05-11 10:31:48 · 8690 阅读 · 3 评论 -
react项目启动报错:Cannot find module './locale'
原因: 传项目的时候没有排除 yarn.lock文件,以后用yarn安装的时候老是安装以前的版本解决方案: 删掉yarn.lock文件, 删除node_modules, 再使用 yarn重新安装就好了...原创 2020-05-01 10:28:01 · 3455 阅读 · 0 评论 -
修改placeholder样式(html和小程序)
html文件中直接使用::placeholder选择器进行修改即可<style> input::placeholder { color: red; font-size: 14px; }</style>小程序中小程序中使用::placeholder选择器并不会生效但是有一个属性能够使用: placeholder-class,能够直接给pl...原创 2020-04-30 20:34:32 · 436 阅读 · 0 评论 -
理解图片base64编码
什么是编码解码编码:利用特定的算法,对原始内容进行处理,生成运算后的内容,形成另一种数据的表现形式,可以根据算法,再还原回来,这种操作称之为编码。解码:利用编码使用的算法的逆运算,对经过编码的数据进行处理,还原出原始数据,这种操作称之为解码。什么是Base64编码算法可以将任意的字节数组数据,通过算法,生成只有(大小写英文、数字、+、/)(一共64个字符)内容表示的字符串数据。即将任意的...原创 2020-04-28 19:41:09 · 1267 阅读 · 0 评论 -
安装taro后创建项目失败(权限问题)
taro 安装完成后默认所属权是管理员的,如果你使用非管理员权限去只是taro init myApp命令时候会出现permission denied,需要加sudo才可以解决但是问题又来了sudo执行后的文件全部为管理员权限普通用户是无法编辑的,那如何解决这个问题呢?执行 如下命令即可解决sudo chown -R $(whoami) $(npm config get prefix)/{li...原创 2020-04-27 16:17:07 · 2186 阅读 · 1 评论 -
chrome进行书签和密码的导入导出
密码的导入和导出导出密码在设置中的密码的选项中点击这个展开图标点击导出就行注意:这个时候你会发现并不能进行导入密码,接下来要进行一些设置导入密码地址栏输入chrome://flags/#password-import-export进入chrome配置找到password import进行修改,默认是不能导入,改成enabled即可接下来下方会出现一条提示(...原创 2020-04-26 17:32:42 · 11713 阅读 · 0 评论 -
mysq语句求和,去重,加一操作
当我们使用mysq语句查询某一个字段(比如说金额)需要进行字段求和或者是对于某一个字段去重操作SELECT COUNT(DISTINCT(`social_credit_code`)) AS businessTotal, SUM(`settle_num`) AS personTotal FROM zhu_b_task_cycle WHERE `id` = $id条件判断更...原创 2020-04-26 14:10:19 · 464 阅读 · 0 评论 -
antd select实现省市级联动完整步骤(包含读取json数据)
去这里拷贝一份json数据这个字段结构也是写好了的,符合antd字段要求直接拷贝数组(不要前面的const和options和=号),然后建立一个json文件如果不想通过json读取数据,也可以直接拷贝整个文件内容(包括const options =)部分通过import的方式导入json文件注意:如果使用的是ts这里会报警告Cannot find module 'ech...原创 2020-04-16 20:17:24 · 5065 阅读 · 3 评论 -
umi修改默认的browser路由为hash路由
browser路由长啥样?localhost:8000/userCenter/indexhash路由长啥样?localhost:8000/#/userCenter/index两者表面区别就是多了一个#这样的区别带来的直接问题就是当处于二级或多级路由状态时,刷新页面,会将当前路由发送到服务器(因为是pathname),而不会(因为是hash段)我会遇到这个问题是因为我做面包屑路由跳转的时...原创 2020-04-15 15:44:41 · 7328 阅读 · 1 评论 -
umi框架使用icon-font
使用icon-font的图标在/config/defaultSetting目录下找到iconfontUrl这里是阿里icon-font的项目图标页面,找到symbol地址在项目中正常使用即可原创 2020-04-15 10:10:40 · 4400 阅读 · 2 评论 -
antd表单的使用(校验,初始化,提交)
antd V3版本和V4版本用法有点不一样V3版本使用见这里(我之前的一篇博客)这次主要讲V4版本import { Form, Input, Button, Select } from 'antd';import React from 'react';const Demo = () => { const [form] = Form.useForm(); // 表单点击提交...原创 2020-04-14 20:52:45 · 7255 阅读 · 0 评论 -
ts学习笔记(持续更新)
交叉类型:将多个类型合并为一个类型// ABC通知具有ABCtype ABC = A & B & C;泛型type Tree<T> = { value: T; // value是T类型 left: Tree<T>; // 在类型别名的属性中引用自己 right: Tree<T>;}type关键字...原创 2020-04-09 19:46:04 · 777 阅读 · 0 评论 -
js文件忽略ESLint语法检查
整个文件忽略/* eslint-disable */// 代码开始位置在文件头部添加规则临时禁止/* eslint-disable */console.log('hello');/* eslint-enable */对指定规则忽略/* eslint-disable no-alert, no-console */alert('foo');console.log('bar');...原创 2020-04-07 20:04:29 · 5252 阅读 · 0 评论 -
如何查看项目的git仓库位置,添加和删除远程仓库
查看项目git仓库信息注意: 由于是隐藏文件,所以windows的资源管理器和mac的访达正常情况下是看不到的进入项目根目录(一定要是根目录, 不能是子目录)进入到.git目录查看config文件信息[core]repositoryformatversion = 0filemode = falsebare = falselogallrefupdates = truesyml...原创 2020-01-16 11:56:49 · 2193 阅读 · 0 评论 -
react项目使用需要注意的地方
componentDidmount必须放到所有方法最前面return后面不要加else(如果是if中的结构简单也能省去{})function elsereturn() { // 不提倡用法 if(布尔值) { return 333; } else { return 444; } // 提倡用法 if(布尔值) return 333; return 444;...原创 2020-04-07 19:03:30 · 1057 阅读 · 0 评论 -
简单比较for-in和for-of
用法和取值for-in能够遍历数组和对象,拿到的是keyfor-of只能用于数组遍历,拿到的是value案例let arr = [1,23,4,5,6];let obj = {name: 'lan', age: 18, gender: 'male'};for(let value of arr) { console.log(value); // 1,23,4,5,6}for(...原创 2020-04-07 15:08:37 · 152 阅读 · 0 评论 -
react几种路由传参的优缺点
params传参方式优点:刷新地址栏之后参数还存在缺点:只能传递字符串,不大适合传参数多或者长的<Route path='/path/:name' component={Path}/><link to="/path/2">xxx</Link>this.props.history.push({pathname:"/path/" + name});读取参...原创 2020-04-03 14:31:03 · 1276 阅读 · 0 评论 -
mac修改chrome跨域请求问题(附windows跨域解决链接)
当前端访问一个接口提示跨域问题的时候,可以修改电脑的chrome不进行跨域拦截打开终端,输入如下命令open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/yourname/MyChromeDevUserData/注意: 目录位置yourname则是你本地电脑...原创 2020-03-15 14:42:45 · 466 阅读 · 0 评论 -
umi搭建脚手架约定式路由使用技巧
官方文档对于约定式路由的定义理解: 就是说你在pages目录下建立一个文件,路由会自动生成,而不需要你自己配置但是实际上你写了文件之后,手动在浏览器地址栏输入路由没有发生跳转原因: 使用脚手架搭建的项目会在配置文件中对路由进行配置。若.umirc.(ts|js)或 config/config.(ts|js) 文件中对 router 进行了配置,约定式路由将失效、新添的页面不会自动被 um...原创 2020-03-11 14:16:29 · 2365 阅读 · 1 评论 -
js深拷贝和浅拷贝
数据类型基本数据类型:String,Boolean,Number,Undefined,Null;引用数据类型:Object(Array,Date,RegExp,Function);深拷贝和浅拷贝简单解释浅拷贝和深拷贝都只针对于引用数据类型浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存;深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象...原创 2020-03-05 10:43:50 · 167 阅读 · 0 评论 -
两种获取接口返回值进行处理的方法(回调和async与promise结合)
通过传入回调函数的方式function getData(callback) { fetch('https://get.zhushang.net/new_zhu_pro/public/index.php/api/getTaskDetailInfoByTaskID?id=64') .then(res => res.json()) .then(res => { ca...原创 2020-02-27 17:38:31 · 2079 阅读 · 0 评论 -
js复制文本到剪切板(使用原生和引入库的方式)
封装一个copy方法(并加上消息提示)copy = (e) => { let copyDom = document.createElement("input"); // 获得需要复制的内容 copyDom.setAttribute("value",e); //不需要让他displaynone // copyDom.style.display = "no...原创 2020-02-27 10:21:09 · 436 阅读 · 0 评论 -
umi面包屑和页头配置和使用
在使用umi框架的时候,本来我们的页面是只能写在如图所示位置的内层红框中通过审查元素可得,是由于框架自带的一个样式有margin导致了我们的内容正常情况是无法布局到外面去的(因为一般我们不会改框架自己写好的样式)那么如果我们想要实现像这样的面包屑和页头要怎么办呢umi自己封装了一个组件PageHeaderWrapper,使用起来也非常简单import React from 'reac...原创 2020-02-26 23:32:07 · 7407 阅读 · 5 评论 -
处理warning:Each child in a list should have a unique “key” prop.
问题: 使用react在循环生成多个组件的时候经常会报一个警告:Each child in a list should have a unique “key” prop原因: 这是由于在进行组件遍历的时候没有加一个key来进行区分每个组件,因为dom需要deff进行对比解决方案:如果是进行循环遍历生成组件的,将key设置为index即可Html = () => {const d...原创 2020-02-26 10:13:57 · 94626 阅读 · 7 评论 -
纯前端导出excel
每个页面需要单独配置options,比较麻烦。定制化程度不高,只能直接导出一个。这个版本支持去掉不需要的列。,如果有不需要的列(比如。原创 2020-02-17 21:48:57 · 351 阅读 · 0 评论 -
封装一个金额转化方法,包括转化千分位和大写金额
/** * Lq * 2020-2-14 * 将金额标准化,保留两位小数,并转化为千分位 */ formattingMoney: (money:number):string => { return money.toFixed(2).replace(/(\d)(?=(\d{3})+\.)/g, '$1,'); }...原创 2020-02-15 09:32:10 · 500 阅读 · 0 评论