发布了文章2022-06-09
起因是最近重构了一个 props 传递层级非常深,组件之间状态通信非常频繁的详情页面。整个代码梳理下来,很难维护,重构时考虑,做组件细分,把数据单拎出来,对数据做一个松散管理。
赞了文章2021-07-29
对于有 JavaScript 基础的同学来说,入门 TypeScript 其实很容易,只需要简单掌握其基础的类型系统就可以逐步将 JS 应用过渡到 TS 应用。
赞了文章2021-05-07
高阶组件的这种写法的诞生来自于社区的实践,目的是解决一些交叉问题(Cross-Cutting Concerns)。而最早时候 React 官方给出的解决方案是使用 mixin 。而 React 也在官网中写道:
发布了文章2020-07-31
我们开发惯指的重构,一般都是指技术重构。简单点说就是基于项目进行代码层面的重构。推倒了重新来,老房子扒掉重新造,肯定是有钱了想让自己更舒适,程序代码推倒了重新写,还不是因为代码质量经过长年累月需求迭代,祖传代码越来越难维护,更别说在这个基础上去老...
赞了文章2020-04-01
在 React Fiber 架构面世一年多后,最近 React 又发布了最新版 16.8.0,又一激动人心的特性:React Hooks 正式上线,让我升级 React 的意愿越来越强烈了。在升级之前,不妨回到原点,了解下人才济济的 React 团队为什么要大费周章,重写 React 架构,而 Fiber 又是个...
发布了文章2019-11-15
Node 和 JavaScript 的优势之一是它们的单线程模型。这样代码控制逻辑很清晰、明了。但是 Node 采用了事件轮询、异步API、非阻塞 I/O三种技术来解决单线程阻塞(等待的问题)。
发布了文章2019-10-31
之前我有提到过 call、apply 主要用来改变函数运行时的执行环境(this),对于执行环境(this)以及 call、apply 用法不了解的,可以参考之前的文章:JavaScript 函数作用域、执行环境(this)、call、apply、bind 的用法。
发布了文章2019-09-04
前端其实是个很大的范畴。我这里只针对 web 开发的前端而言(下文统称前端)。简单点说,针对浏览器的开发,浏览器呈现出来的页面就是前端。它的实质是前端代码在浏览器端被编译、运行、渲染。前端代码主要由三个部分构成:HTML(超文本标记语言)、CSS(级联样式表...
赞了文章2019-06-05
web可视化查看构建分析:得到了webpack构建信息文件stats.json,如何进行很好的可视化查看? 方案一:通过可视化分析工具Webpack Analyse,是个在线Web应用,上传stats.json文件就可以;不过好像需要翻墙;
赞了文章2019-05-28
web可视化查看构建分析:得到了webpack构建信息文件stats.json,如何进行很好的可视化查看? 方案一:通过可视化分析工具Webpack Analyse,是个在线Web应用,上传stats.json文件就可以;不过好像需要翻墙;
发布了文章2019-05-16
事件冒泡 IE的事件流叫做事件冒泡。顾名思义当事件发生后,事件就开始从里向外传播,查看下方代码: {代码...} 如果点击页面中的 <div> 元素,那么这个 chick 事件就会按照如下顺序传播: click 事件 在 直系DOM 树的每一级节点都会发生(自下而上),直到 doc...
发布了文章2019-05-16
事件冒泡 IE的事件流叫做事件冒泡。顾名思义当事件发生后,事件就开始从里向外传播,查看下方代码: {代码...} 如果点击页面中的 <div> 元素,那么这个 chick 事件就会按照如下顺序传播: click 事件 在 直系DOM 树的每一级节点都会发生(自下而上),直到 doc...
发布了文章2019-05-15
this对象是在运行时基于函数的执行环境绑定的。比如:在全局函数中,this 等同于 window 或者 global,而当函数被作为方法调用时,this 等于那个对象。特别需要注意的是在执行诸如:setInterval、setTimeout 等函数的回调时,此时的 this 其实是指向全局 window 的,...
赞了文章2019-04-23
最近将项目中redux的中间件,从redux-thunk替换成了redux-saga,做个笔记总结一下redux-saga的使用心得,阅读本文需要了解什么是redux,redux中间件的用处是什么?如果弄懂上述两个概念,就可以继续阅读本文。
发布了文章2018-12-20
碰撞,顾名思义,就是两个物体碰撞在了一起,眼睛是可以直观的观察到碰撞的发生。但对于前端实现,如何让 JavaScript 代码理解两个独立的“物体”(DOM)碰撞在一起呢。这就涉及到碰撞检测(或者叫边界检测)的问题了。
发布了文章2018-06-11
float 属性定义元素在哪个方向浮动。以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。
发布了文章2018-05-15
Python 源文件通常用.py 扩展名。当源文件被解释器加载或显式地进行字节码编译的时候会被编译成字节码。由于调用解释器的方式不同,源文件会被编译成带有.pyc或.pyo扩展名的文件,你可以在第十二章“模块”学到更多的关于扩展名的知识。