Bernie维尼

108
获赞数
7
关注数
21
粉丝数
上海
IP 属地上海
2016-02-05 加入
浏览 9.8k
╭╮╱╭┳━━━┳╮╱╭╮
┃┃╱┃┃╭━╮┃┃╱┃┃
┃╰━╯┃┃┃┃┃╰━╯┃
╰━━╮┃┃┃┃┣━━╮┃
╱╱╱┃┃╰━╯┃╱╱┃┃
个人简介什么都没有
388 声望|学徒
全站排名超越 96% 用户
javascript
172
npm
68
cli
65
代码规范
55
react
48
1 黄金勋章
白银勋章
暂未获得该勋章
如何获得
个人动态
  • 赞了文章2024-04-22
    React hooks 的基础概念:hooks链表
    当函数组件进入render阶段时,会被renderWithHooks函数处理。函数组件作为一个函数,它的渲染其实就是函数调用,而函数组件又会调用React提供的hooks函数。初始挂载和更新时,所用的hooks函数是不同的,比如初次挂载时调用的useEffect,和后续更新时调用的useEffect...
  • 赞了文章2024-03-21
    ReactFiber节点的更新入口:beginWork
    React的更新任务主要是调用一个叫做workLoop的工作循环去构建workInProgress树,构建过程分为两个阶段:向下遍历和向上回溯,向下和向上的过程中会对途径的每个节点进行beginWork和completeWork。
  • 赞了文章2024-03-14
    一篇长文帮你彻底搞懂React的调度机制原理
    Scheduler作为一个独立的包,可以独自承担起任务调度的职责,你只需要将任务和任务的优先级交给它,它就可以帮你管理任务,安排任务的执行。这就是React和Scheduler配合工作的模式。
  • 发布了文章2019-12-13
    HTTP 协议的缓存机制概述
    HTTP 协议的缓存机制涉及到多个请求头字段,而且整个缓存机制的细节行为也存在各种情况的差异,譬如说什么时候访问本地缓存不发送请求,什么时候发送请求查看资源是否更新,获取 response 什么情况下更新缓存等。以前我对此一知半解只是笼统的知道一些概念,譬如 Cac...
  • 赞了文章2019-12-09
    精读《正交的 React 组件》
    <img width=400 src="https://img.alicdn.com/tfs/TB1dczIpQL0gK0jSZFtXXXQCXXa-1000-993.png">
  • 发布了文章2019-12-06
    npm package开发指南-包内容篇
    如果开发人员安装了你的库,那么引入的时候找哪个文件?编译源码生成 dist/index.js,并在 package.json 中增加一个 main 字段指向这个文件。
  • 发布了文章2019-08-22
    ES6模块默认导出和变量绑定(Default Exports and Exporting bindings)
    JavaScript 现在最主流的模块机制是 commonjs 和 ES6 module。两者不单是语法上有所区别,在加载的时候也有所不同,譬如 commonjs 是运行时加载,ES6模块是编译时输出接口的。还有一个重要的区别是 commonjs 导出的东西是值拷贝,而 ES6 模块导出的东西是……暂时认为...
  • 发布了文章2019-07-30
    package-locks 机制简述
    然后你把 package.json 提交到代码库。过了一段时间,有新人加入到项目里面。他克隆出了代码,然后本地安装依赖包 npm install。在他安装的时候 eslint 已经发布了新的版本5.16.0。那么新人本地安装的 eslint 版本就会变成5.16.0。这个机制意味着同一份 package.json...
  • 发布了文章2019-06-12
    如何使用Git Rebase
    我们在日常开发中使用 Git 做分支合并的时候有两种方式:merge 和 rebase。merge 是最常用的,rebase 使用的没有 merge 这么多,那么 rebase 和 merge 有什么区别呢?什么时候使用 rebase?使用 rebase 的时候有什么注意事项呢?接下来我来介绍下这三个问题。
  • 发布了文章2019-06-04
    ESLint+Prettier代码规范实践
    代码规范校验使用 ESLint,但是一开始 ESLint 只有检测告诉你哪里有问题,常常出现的情况就是一堆 warning,改起来很痛苦。后来 ESLint 提供了 $ ESLint filename --fix 的命令可以自动帮你修复一些不符合规范的代码。Prettier 是一个代码格式化工具,可以帮你把代码...
  • 发布了文章2019-05-24
    leetcode算法第10题正则表达式匹配-回溯-动态规划
    题目 简要贴下题目,具体详见这里: 给定一个字符串 (s) 和一个字符模式 (p)。实现支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符。'*' 匹配零个或多个前面的元素。 匹配应该覆盖整个字符串 (s) ,而不是部分字符串。 说明: s 可能为空,且只包含从 a-z ...
  • 发布了文章2019-04-06
    前端项目请求层封装过程
    调用 ajax 取请求后端数据是项目中最基础的功能。但是如果每次直接调用底层的浏览器 api 去发请求则非常麻烦。现在来分析一下怎么封装这一层,看看有哪些基础问题需要考虑。本文底层使用 fetch ,如果你使用 XMLHttpRequest 甚至第三方库(譬如:axios)封装过程都是...
  • 发布了文章2019-04-06
    前端项目请求层封装过程
    调用 ajax 取请求后端数据是项目中最基础的功能。但是如果每次直接调用底层的浏览器 api 去发请求则非常麻烦。现在来分析一下怎么封装这一层,看看有哪些基础问题需要考虑。本文底层使用 fetch ,如果你使用 XMLHttpRequest 甚至第三方库(譬如:axios)封装过程都是...
  • 发布了文章2019-03-13
    React16性能改善的原理(二)
    上一篇我们提到如果 setState 之后,虚拟 dom diff 比较耗时,那么导致浏览器 FPS 降低,使得用户觉得页面卡顿。那么 react 新的调度算法就是把原本一次 diff 的过程切分到各个帧去执行,使得浏览器在 diff 过程中也能响应用户事件。接下来我们具体分析下新的调度算...
  • 发布了文章2019-03-08
    使用IndexedDB做前端日志持久化
    页面如果表现不符合预期,前端工程师在没有 javascript 日志的情况下,很难 debug。所以就需要针对必要的步骤记录日志,并上传。但是每记录一条日志就上传并不是一个合适的选择,譬如如果生成日志的操作比较密集,会频繁产生上传日志请求的情况。那么我们可以在页面...
  • 赞了文章2019-02-21
    链家网前端总架构师杨永林:我的8年架构师成长之路
    杨永林,人称“教主”,八年前端开发经验,原新浪微博前端技术专家,现任链家网前端总架构师。长期研究Web访问性能优化和前端框架搭建。作为初始团队成员,教主参与了新浪微博所有PC版本的开发,其中4~6版以架构师的身份设计了微博PC版的前端架构。在新浪微博任职期间...
  • 发布了文章2019-02-21
    React16性能改善的原理一
    React16 更新了底层架构,新架构主要解决更新节点过多时,页码卡顿的问题。譬如如下代码,根据用户输入的文字生成10000行数据,用户输入框会出现卡顿现象。
  • 发布了文章2018-07-31
    前端项目目录如何组织
    由于 antd pro 本身引用了 antd 的组件库,所以不存在自己写通用组件的步骤。但是有的时候我们自己项目会有自己写通用组件的需要。组件除了有通用组件,还会有业务组件。通用组件是粒度比较细且和业务无关的组件,譬如 Dropdown。而业务组件可能是你这个项目特有的,...
  • 发布了文章2018-06-07
    通过npm包来制作命令行工具的原理
    用过构建工具的亲们知道,通常通过全局安装一个 xxx-cli 的 npm 包,就能在命令行用命令进行构建。那么这个 npm 包如何变成一个可执行的命令呢?
  • 发布了文章2018-06-07
    WebSocket与http长连接的区别
    GET / HTTP/1.1 Host: localhost:8080 Origin: [url=[链接]:3000][链接]:3000[/url] Connection: Upgrade Upgrade: WebSocket Sec-WebSocket-Version: 13 Sec-WebSocket-Key: w4v7O6xFTi36lq3RNcgctw==