如何在静态函数中,执行react路由的跳转

在项目中,我们在进行登录状态校验的时候,如果发现未登录,要执行登录页面的跳转。 在react单页应用中,一般情况下,我们可以再组件的props中获取到history,然后执行跳转。 比如这样。 handleSignInSuccess = (value)=>{ const {history,dispatch} = this.props; history.push(`/admin`); }; 但是,如果我们使用asxios做ajax请求的时候,我们就可以在拦截器中进行处理。那么,怎么在静态函数中怎么处理呢。 通过history即可。 npm install history --save /** * Created by 落雁沙 * Copyright MoenSun * User: Bane.Shi * Blog: http://www.ithere.net/fen...
01702019-08-18

编辑器相关知识整理

编辑器相关知识整理 富文本编辑器在前端范畴一直是比较复杂、难度非常大一件事情,各个社区、论坛都有自己写的比较好的编辑器,但是估计是因为研发成本太高,故此没有对外开源。 做的比较好的石墨文档、语雀、谷歌文档等, 用语雀比较多,功能真的很完善,表格操作、md格式编辑、脑图编辑等。 这里先整理了一些知识: hax整理的:https://github.com/hax/hax.github.com/issues/41 基本覆盖的比较全了, 衍生自定义的定制实现: 基于quill的vue实现: https://surmon-china.github.io/vue-quill-editor/ 基于quill的react实现:https://github.com/zenoamaro/react-quill 基于draft的实现:https://github.com/margox/braft-editor ...
0612019-08-17

重构的经验

一般很多公司因为前期人员不足,业务发展飞快等原因,产生各种祖传代码,等项目稳定以后一般都会回过头重构 重构的时机: 需求稳定,时间比较充裕 有重大需求变更的时候 重构分类: 纯前端重构, 技术栈升级比如 vue1 到vue2 技术栈变更,比如jq到vue, react到vue等 或者纯业务重构 前后端分离重构 需要参与的人员: 前端 后端(前后端分离) 测试(必须要得到他们支持) 老大们、产品拍板同意(大块的重构是要占据正常上班时间的,会影响其他迭代) 重构比较熟的业务,确定好时间节点,直接干就好了 不熟的业务,需要先理好需求,一般我会写一个细节分析分档,拉上熟悉业务的后端、测试、产品,确定所有的点都ok以后,再开始干 上线方式和移动云目前的方式类似, 基本都是开发一部分上线一部分,用iframe嵌入,或者自己手动再实现一套菜单和头 特别注意的一点,小的改动(特别是新接手的业务)一定要注意...
0202019-08-17

Prometheus 入门及进阶

欢迎大家订阅本人维护的微信公众号或者今日头条头条号,第一时间获取分享:)。 Warning!!!内容较多备好板凳与瓜子矿泉水!! 参考1 参考2 什么是TSDB? TSDB(Time Series Database)时序列数据库,我们可以简单的理解为一个优化后用来处理时间序列数据的软件,并且数据中的数组是由时间进行索引的。 时间序列数据库的特点 大部分时间都是写入操作。 写入操作几乎是顺序添加,大多数时候数据到达后都以时间排序。 写操作很少写入很久之前的数据,也很少更新数据。大多数情况在数据被采集到数秒或者数分钟后就会被写入数据库。 删除操作一般为区块删除,选定开始的历史时间并指定后续的区块。很少单独删除某个时间或者分开的随机时间的数据。 基本数据大,一般超过内存大小。一般选取的只是其一小部分且没有规律,缓存几乎不起任何作用。 读操作是十分典型的升序或者降序的顺序读。 高并发的读操作十分常...
0902019-08-16

编译Linux内核源码

此文算是水文一篇了,还是很早以前突发心思搞下 Linux 内核编译时记录的,感觉可装X。。。 欢迎大家订阅本人维护的微信公众号或者今日头条头条号,第一时间获取分享:)。 升级一些依赖包 yum install -y rpm-build redhat-rpm-config asciidoc hmaccalc perl-ExtUtils-Embed pesign xmlto yum install -y audit-libs-devel binutils-devel elfutils-devel elfutils-libelf-develsudo yum install -y ncurses-devel newt-devel numactl-devel pciutils-devel python-devel zlib-devel bison 创建源码的编译书目录及目的源码存放地址 mkdi...
0822019-08-16

Kubernetes 使用Prometheus 搭建监控平台

欢迎大家订阅本人维护的微信公众号或者今日头条头条号,第一时间获取分享:)。 转载自阳明老哥技术blog,发现其中有部分问题加上自己实践踩坑 本人维护的yaml配置文件链接 一般情况下我们是直接通过Dashboard的资源统计图标进行观察的,但是很显然如果要上到生产环境,就需要更自动化的方式来对集群、Pod甚至容器进行监控了。Kubernetes内置了一套监控方案:influxdb+grafana+heapster。但由于之前我们的应用的业务监控使用的是Prometheus,所以这里准备使用Prometheus来完成k8s的集群监控。 Prometheus 简介 Prometheus是SoundCloud开源的一款开源软件。它的实现参考了Google内部的监控实现,与源自Google的Kubernetes结合起来非常合适。另外相比influxdb的方案,性能更加突出,而且还内置了报警功能。它...
1902019-08-16

鸭哥传已更新

鸭哥传已更新,链接:http://www.ithere.net/Beerduck/article/134 。 新角色姓名在线征集!
05202019-08-15

Mysql 事务的一点总结

事务 事务的概念以及用法这边就不赘述了,事务的ACID特性也不多说了,我们来聊一聊事务的隔离和多版本并发的一点知识 隔离级别 1.Read Uncommited (未提交读) 事务中的修改,即使没有提交,对其他事务也是可见的。事务可以读到未提交的数据,也就是脏读 2.Read Commited (提交读) 一个事务在开始的时候,只能看见已经提交的事务所做的修改。意思也就是,一个事务在正式提交前,所做的修改对其他事务都是不可见的。他所造成的问题是,当执行多个同样的查询时候,可能得到不一样的结果。 3.Repeatable Read (可重复读) 该级别保证了在同一个事务中多次读取同样的记录结果是一致的。但是他无法解决幻读的问题。幻读指当某个事务在读取某个范围内的记录时,另一个事务又插入新的记录,当之前的事务再次读取时会产生幻行。 可重复读是Mysql的默认隔离级别 4.Serizlizabl...
0902019-08-11

通过消抖(debounce)方法,解决resize事件触发元素计算无效的问题

有些业务场景下,我们需要监听window 或者元素的resize事件。 上次做antd的table的最大高度展示的时候,遇到一个情况,因为是通过监听window和parent的resize事件,再去执行高度计算的。正常拖拽浏览器,去改变窗口大小,这种情况是没有问题的。 但是,如果我打开浏览器的控制台,window大小依旧变化了,但是,高度计算却没有达到理想效果。 解决办法,就是用lodash的debounce方法来处理。 $(window).resize(_.debounce(me.computeY,200)); 这个问题的,主要原因,大概是因为,我们在手动拖拽的时候,resize是持续触发的,元素也会持续渲染。但是,在开启控制台的时候,只触发一次,元素没有渲染好的时候,就去执行了高度计算。所以使用debounce 可以解决这个问题。 描述可能有些不到位,毕竟不是专业前端,请大佬指正。
02622019-08-09

Spring Cloud 系列之微服务的容错处理 Hystrix 拓展(八)

Hystrix 线程隔离策略与传播上下文 hystrix 的隔离策略分为两种: THREAD (线程隔离):使用该方式, HystrixCommand 将在单独的线程上执行,并发请求受到线程池中的线程数量的限制。【默认方式,因为此种方式有一个除网络超时以外的保护层】 SEMAPHORE(信号量隔离):使用该方式, HystrixCommand 将在调用线程上执行,开销相对较小,并发请求受到信号量个数的限制。【负载非常高时采用,信号量隔离一般仅适用于非网络调用的隔离】 隔离策略的属性 key 为: execution.isolation.strategy 如果想传播线程本地的上下文到 @HystrixCommand, 默认声明将不会工作,因为 THREAD 是在线程池中执行命令的,但是我们可以通过使用一些配置让 Hystrix 使用相同的线程或者直接在注解中让 Hystrix 使用不同的隔离...
11002019-08-08