Hello World
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Quick StartCreate a new post1$ hexo new "My New Post"
More info: Writing
Run server1$ hexo server
More info: Server
Generate static files1$ hexo generate
More info: Generating
Deploy to remote sites1$ hexo deploy
More info: Deployment
精简版React源码手稿
精简版 React 源码手稿
TLDR: 全是源码,适合看过源码想回头细看的同学
本次分享源码版本react@16.6.0和react@16.7.0
注:本此分享更多的是源码,概念性的东西读者可自行查阅官网文档或者 YouTube React Conference
代码结构
packages/react
packages/react-dom
packages/react-reconciler
平台无关 DOM 操作,包括任务调度
JSX 到 JSReact.createElement, 入参 type, config, children,返回一个对象
API 源码1234567891011121314151617181920212223242526272829303132333435// packages\react\src\React.js// 暴露出来的APIconst React = { Children: { map, ...
How to build an Electron app using Create React App and Electron Builder
如何使用 Create React App 和 Electron Builder 构建 Electron 应用
最近我决定做一个桌面应用来下载和保存我的 Google Photos。因为我曾被丢失所有照片折磨够了。虽然 Google 本身有一些选项可以配置实现,但是实践下来貌似都有问题。
如果你想使用这款应用,你可以在这里下载 OSX或者 WIN。
技术栈上我选择 Electron 和 React,因为这使得我的工作很有趣,而且最终效果不错.
在这篇博客中,我会分享一些配置和我踩过的坑。
我刚开始开发的时候,我参考了这两篇博客 1和 2,感谢。
好的,结下来我们一起来学学如何构建一个使用 Create React App 开发的 Electron 应用,然后在使用 Electron Builder 进行打包分发。
我们先来了解一下整个技术栈然后再开始。如果你想跳过,可以直接看源码
技术栈
Electron
React - Create React App
Rescripts
Electron Builder
Electron 是一个使用 JavaScript, HTML, and C ...
事件循环和垃圾回收
事件循环和垃圾回收我们在使用 JavaScript 时,经常要用到大量的回调函数,比如在浏览器中可以使用 setTimeout 来设置定时器,使用 XMLHTTPRequest 来异步下载资源文件,在 Node 中可以使用 readFile 来读取文件,这些操作都有一个共同的特点,那就是需要给调用 API 传入回调函数,然后浏览器或者 Node 会将执行处理的结果通过回调函数来触发。
从内部了解回调函数,可以帮助我们梳理清楚很多问题:
有助于我们理解浏览器中的 Web API 到底是怎么工作的;
有助于我们理解宏任务和微任务到底有哪些区别;
理解回调函数,是理解异步编程模型 async/await 的基础。
这些内容在我们实际的项目中都会频繁使用到,所以理解 V8 是怎么实现回调函数的就显得至关重要了。
V8 是怎么实现回调函数的?回调函数有两种类型:同步回调和异步回调,同步回调函数是在执行函数内部被执行的,而异步回调函数是在执行函数外部被执行的。
关于异步回调,这里也有两种不同的类型,其典型代表是 setTimeout 和 XMLHttpRequest。
setTimeout 的 ...
模块化发展
模块化发展
参考:https://zhuanlan.zhihu.com/p/108217164
闭包是什么?
谈谈你对闭包的理解变量的作用域JavaScript 中,变量的作用域有两种:全局作用域和局部作用域
JavaScript 语言特殊之处在于,函数内部可以直接读取全局变量
1234567var n = 999;function f1() { alert(n);}f1(); // 999
另一方面,在函数外部自然无法读取函数内部局部变量
123456function f1() { // 注意此处必须使用var声明符,否则就是全局声明 var n = 999;}alert(n); // error
如何从函数外部读取函数内局部变量1234567891011121314function f1() { var n = 999; // 1. JavaScript 语言允许在函数内部定义新的函数 function f2() { alert(n); // 2. 可以在内部函数中访问父函数中定义的变量 } return f2; // 3. 函数是一等公民,所以函数可以作为返回值}var result ...
区块链
敬请期待!!!
智能合约
敬请期待!!!
Nginx如何实现负载均衡和反向代理
敬请期待!!!
DNS是如何实现负载均衡的
敬请期待!!!