前言 最近一直在用 MobX 开发中小型项目,开发起来真的,真的很爽,响应式更新,性能快,样板代码减少(相对 Redux)。所以,想趁 2019 年结束前把 MobX 源码研究一遍。 T...
博客广场
MobX or Redux
前言 在过去的项目中一直用的都是 Redux,觉得挺不错的,按照官方推荐的一些写法,再加上团队风格,打造了一套关于 Redux 的架构,但是,现在觉得写 Action、Reducer 太...
MacBook Pro 外接显示屏开启 HiDPI
前言 最近向公司申请了一台 2K 显示器,弄来之后,接上 MacBook Pro,结果,由于像素太高,导致整个屏幕都缩放,字体变的非常小,而且也没有达到 Retina 的效果。经查询...
JS 运行机制类文章
这一次,彻底弄懂 JavaScript 执行机制 https://juejin.im/post/59e85eebf265da430d571f89 JavaScript 是如何工作的:在 V8 引擎里 5 个优化代码的技巧 https://github....
JS 语法规范
采用小写驼峰式命名 // good studentInfo // bad studentinfo STUDENTINFO 常量命名方式 // good const COL_NUM = 10; // bad const col_num = 10; 使用字面量 // good ...
JS 数组扁平化之简单方法实现
什么是扁平化 一句话解释,数组扁平化是指将一个多维数组(含嵌套)变为一维数组 扁平化之 ES5 toString const arr = [1, 2, 3, [4, 5, [6, 7]]]; const flatten = arr.to...
JS 实现队列
队列 队列是一种列表,与栈相反,特点表现为先入先出(First-in-First-out,FIFO)结构。常见的例子就是银行排队,先到人的先办理业务。 实现 使用数组实现,js 中的数组...
JS 实现斐波那契数列
斐波那契数列 0,1,1,2,3,5,8 像这样的数列就是斐波那契数列,特点是第 n 项等于前两项的和。 递归实现 function fib(n) { if (n == 0) { return 0; } if (n == 1) { ret...
JS 实现各种排序
冒泡排序 冒泡排序是一种把数字两两交换的排序,时间复杂度为 O(n2)。 function bubbleSort(array) { if (array.length < 1) { return; } var temp; var len = array.le...
JS 实现列表操作
列表 人们经常使用列表,比如待办事项列表、购物车等,如果数据不太多的话,列表就显得尤为有用。 JS 实现 function list() { this.dataStore = []; //初始化数组 this....
JS 实现出入栈操作
栈 栈是一种特殊的列表,栈内的元素只能通过列表的一端访问,这一端称之为栈顶。栈被称为一种后入先出(LIFO,last-in-first-out)的数据结构。盘子就是最好的例子,最后...
JS 实现 deepCopy
function getType(obj) { // 为啥不用typeof? typeof无法区分数组和对象 if(Object.prototype.toString.call(obj) == '[object Object]') { return 'Object'; } if(Obje...
JS 垃圾回收机制
标记清除 标记清除是指对变量进行标记,当变量进入作用域中的时候,标记"进入环境",从逻辑上来讲,永远不能是释放进入环境的变量所占用的内存,因为只要执行流进入相应...
GitHub 本地配置和全局配置
原文地址:https://segmentfault.com/a/1190000002994742 还需要设置项目本地的配置和全局配置 $ git config --local user.name "" $ git config --local user.email ""...
Git 分支管理策略
在 Git 中管理分支流程的主要方法 Git Flow Git Flow 最开始是由 Vincent Driessen 发行并广受欢迎,这个模型是在 2010 年构思出来的,而现在距今已有 10 多年了,而 Gi...
EventSource 引发的一系列事件
背景 大家好,我是江辰,最近小小的实现了下 chatGPT 的问答式回复,调研了前端如何实现这种问答式请求,有几种方案,Http、EventSource、WebSocket,三种实现方案各有...
Eslint for React
React 脚手架配置 eslint Install npm install -g eslint .eslintrc.json { "extends": "eslint:recommended", "env": { "browser": true, "commonjs": true, "es6": tr...
ERR_SSL_PROTOCOL_ERROR
起因是因为阿里云机器快要到期了,然后重新买了台低配的机器,在上面跑我的服务。根据快照直接进行创建,发现新机器和老机器的数据一摸一样,这功能真舒服,根据自定义...
Decorating class property failed
How to fix export default new DashBoardStore(); update is export default DashBoardStore();
Could not execute GraphicsMagick:ImageMagick
How to fix Linux-CentOS:$ yum install GraphicsMagick && yum install ImageMagick Mac:$ brew install imagemagick && brew install graphicsmagick