理解Object.defineProperty和ES6 proxy对象
最近在学习mobX的时候,探究了一下其实现机制,发现最神奇的莫过于,其中使用@observable装饰的变量的改变可以触发autorun的回调,使用了观察者模式和发布/订阅模式很类似,而这种模式反应在javascript对象上的本质就是Object.defineProperty,在很多框架中的数据双向流绑定也是这样实现的,比如Vue
最近在学习mobX的时候,探究了一下其实现机制,发现最神奇的莫过于,其中使用@observable装饰的变量的改变可以触发autorun的回调,使用了观察者模式和发布/订阅模式很类似,而这种模式反应在javascript对象上的本质就是Object.defineProperty,在很多框架中的数据双向流绑定也是这样实现的,比如Vue
最初我是使用ftp上传最新项目进行部署,后来是登陆服务器使用git pull来下拉代码,都不是很方便,后来发现可以利用git带的webhook来实现代码上传自动部署 原理 每次使用git 命令后可以触发webhook钩子,向指定的服务器发送一个post请求,服务器接收到该请求,执行shell命令实现自动下拉代码
必应壁纸的官方api: https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN 但是在我们自己的前端发起ajax请求是会触发同源策略的,禁止访问,属于跨域 那么就可以使用nginx的正向代理来实现对必应的访问
react 的virtual Dom是建立在js和dom之间的一个“缓存”,有了virtual Dom,可以在每次更新真实Dom之前通过diff算法,比较前后两棵virtual Dom树的差异,然后只记录需要更改的dom操作,因此大大减少了操作真实dom的开销
安装webpack sudo cnpm install webpack -g 安装webpack-cli sudo cnpm install webpack-cli -g
总结一下红宝书中列出的6种JS继承方式 原型链 function Super() { this.fatherProperty = 1;}function Sub() { this.sonProperty = 2;}Sub.prototype = new Super();var newSon = new Sub();
原版redux-saga是为了解决redux异步流的方案,既然是插件的插件,在使用的时候就应该像黑盒一样,不管你内部是怎么运作的,我的输入输出方式不会有太大改变,这就要先引出redux的中间件middleWare
Mac下使用Homebrew安装yarn brew install yarn Ubuntu/Debian下 sudo apt-get install yarn