React v16.3+已标注componentWillReceiveProps为不提倡,17将予以删除,那么这个周期函数为什么要被废弃呢,弊端在哪里,及新的同需求新写法又是如何呢。这篇文章我来梳理下这个函数

componentWillReceiveProps的触发时间

顾名思义即props发生变化时触发,但是实际上props不变也会触发。当父组件重新渲染,子组件的componentWillReceiveProps即会触发。so, componentWillReceiveProps不单单只是在props变化才触发。

componentWillReceiveProps的使用

阅读全文 »

趁着周末做下react-intl的类库升级。当前最新版本是v4.6.9,项目使用的版本是v2.3.18,这里决定升级到v3@latest

升级带来的benefit

  1. 修复已知的BUG,原先的版本当我传入de-de,国际化失效,当时的workaround是我将localData的key永远设定为en
  2. 针对localeData部分,体积会减小,因为已经使用了浏览器自带的Intl相关API
  3. withRef迁移到forwardRef,这也是目前组件间引用传递通用的方式,有益于统一
  4. 之前已经做了React,Redux这些主要类库的升级,Intl升级有益于整体架子将来的迭代升级
  5. 之前的国际化方法,比如formatMessage返回的是Node节点,比如包含了Span标签,而v3返回的是文本,严格来说渲染也会降低浏览器的开销,毕竟少了一对节点,当然比如有些国际化地方需要简单的文本,这样就可以直接满足

开源虽免费,版本须谨慎,但永恒不变,对于发展中的WEB技术和本身的产品项目都是不利的,所以还是需要渐进升级。

升级细目

阅读全文 »

最近因为Alfred的开发与社区的布道师沟通,期间在一个问题上我的描述让他出现了极大的困惑,他给了我这么个反馈-这是个X-Y-Problem,这时我才第一次知道X-Y Problem这个概念。

诚然,很多时候,我们去问的问题,我们需要自己先去想想,描述的问题是否是真正的问题,描述的是否自己能否看懂,否则就是在浪费他人时间,同时也浪费了自己的时间。

在职场也工作6年了,其实问问题,描述问题,是个能力, 不是说你30岁了,就真的会问问题。你不见得比小孩强,人家想吃什么直接说,你可能扯半天,别人不明白你到底想干嘛。

最近站点上了WebSocket,紧接面临的问题是Web服务集群下WS的通讯问题。Web服务多实例的情况下,假如A用户访问订阅了A服务的WS频道,但是B服务在后台发起了广播,实际上A用户是收不到消息的。于是问题来了,集群场景下,广播,单个用户准确发消息呢。

Tech Stack

首先,介绍下当前项目的技术栈

  • React v16.4.2
  • SpringBoot v2.1.6.RELEASE

解决方案

阅读全文 »

个人是AirPods等无线设备的强烈支持者,很多年不曾使用过有线鼠标,耳机了。但日常使用存在这样一个场景,平时AirPods是连接的iPhone,但有时比如要开会,我需要快速连接到Mac上去。当前的操作是,滚动鼠标到屏幕右上角蓝牙图标=》点击蓝牙图标,选择AirPods=》选择连接。OK,操作繁琐,于是我想做个workflow来快速连接断开蓝牙设备吧。

当前效果

当你选中一个断开连接的设备,则设备就会连接,反之,则会断开。妈妈再也不用繁琐的操作蓝牙连接了。

下载地址:戳这里

阅读全文 »

一直没做过Chrome拓展开发,最近发现京东跟阿里一样,在一些权益上刻意为用户设绊子,浪费宝贵的时间,于是顺便做个小工具,也权当Chrome插件开发练手。

工具的目的

  • 自动点击摇一摇
  • 定时自动获取目标金额优惠券

工具作用不大,但节省了几次鼠标点击的体力操作和对于定时才可以领取优惠券的惦记。so,个人觉得有点意义。

阅读全文 »

个人博客当前使用的搜索服务是Swiftype,但有一定试用期,到期后402报错。而local search的体验很差,于是我切换到使用algolia。发现这么个服务配置,网上说法不一,多少还是踩了点坑的,这里简单Mark下。

当前博客主题版本

  • hexo - v3.9.0
  • hexo-theme-next - v7.2.0

注意:版本不同,配置确实可能存在出入

algolia站点服务注册

阅读全文 »

最近思考如何在Alfred中实现印象笔记的检索功能,好在社区中已经有好人实现了一版,但其支持的是Alfred3及Evernote,所以需要进行下改进。当然如果功能有不满意的,还需定制自行改进下,不过问题不大,开搞。

当前效果

下载地址:戳这里

想知道如何做到的,继续看。

阅读全文 »

最近在刷题,发现很多公众号为了保护个人知识版权,都是用图片来发题,这样在测试时,每次都需要从零手写,这样就很浪费时间。于是考虑搞个截图识字来节约时间。

OCR服务-百度

OCR服务商还是挺多的,谷歌,腾讯,百度等。因为百度的SDK支持NodeJS,而腾讯不行,谷歌毕竟在墙外,可靠性弱一些。所以选择百度。

个人不喜欢百度,但是毕竟OCR服务有限量免费,不用白不用。

Workflow实现

阅读全文 »

现象

分析

WEB用到了自定义字体,DOM解析渲染时,字体还未加载完全,立即使用缺省字体显示,字体加载完成后,重新渲染替换

手段

阅读全文 »
0%