使用proxy实现 MobX 的observable和autorun
const obj = observable({ a: “a”, b: “b” }) autorun(() => { console.log(obj.a) }) obj.b = “1” // 不触发回调 obj.a = “2” // 触发回调,打印出 “2” obj.b没有出现在autorun的回调中,无论怎么修改都不会触发回调,obj.a的修改就会触发回调, mobx是怎样在不通过参数传递 ……
理解Object.defineProperty和ES6 proxy对象
最近在学习mobX的时候,探究了一下其实现机制,发现最神奇的莫过于,其中使用@observable装饰的变量的改变可以触发autorun的回调,使用了观察者模式和发布/订阅模式很类似,而这种模式反应在javascript对象上的本质就是Object.defineProperty,在很多框架中的数据双向流绑定也是这样实现的,比如Vue
Linux下 WebHook + node.js 实现web自动化部署
最初我是使用ftp上传最新项目进行部署,后来是登陆服务器使用git pull来下拉代码,都不是很方便,后来发现可以利用git带的webhook来实现代码上传自动部署 原理 每次使用git 命令后可以触发webhook钩子,向指定的服务器发送一个post请求,服务器接收到该请求,执行shell命令实现自动下拉代码