在百度云(BAE)上部署Ghost Blog -- 半自动化版

作者:JerryXia | 发表于 , 阅读 (0)
从BAE上把新创建的项目的git目录clone下来。然后把Ghost里面的一坨东西拷贝到当前目录好了,git add,commit,push一气呵成!哎,怎么push不上去,这是因为push的内容过多,BAE的git设置了bufferSize,运行这个命令
git config --global http.postBuffer 157286400
ok, push成功,在BAE上刷新一下,快捷发布!

祈祷一下,然后发现部署失败。巨坑汇总
到目前位置我们离胜利还差剩下这些坑没填。npm install: 这个是很显而易见的,ghost项目所依赖的第三方包我们没有安装,所以迅速的在本地敲下npm install,但是稍等。不知道大家的本地环境如何,我用的是mac,这些依赖包里的sqlite是做文件存储的,这个包需要g++编译,mac端编译固然可以,但是我们的BAE是跑在linux上的,直接上传肯定不行。于是我就去搜索了BAE的node module的策略,官方说你在package.json中写好依赖,BAE会自动帮你安装,但是,实测无效。所以我自己找了台linux机器,在上面安...阅读全文

关于React.js 的shouldComponentUpdate()方法中值变化的调试

作者:JerryXia | 发表于 , 阅读 (0)
翻译自medium
React中的可选生命周期方法shouldComponentUpdate()可以配合自己写的代码逻辑来优化性能,但是与此同时如果你忘记了比较值的变化,项目调试起来也会比较麻烦。
当和Redux和其他周边库一起使用的时候,这其实就是通过比较所有属性是否相等来决定是否要页面重新渲染更新。如果你漏掉了某一个值,那么接下来你就嗨皮了,因为你要花半天找到底漏掉了哪一个。下面就是我们经常会写的代码:
shouldComponentUpdate(props, state) {return props.first !== this.props.first|| props.last !== this.props.last}这样写一般没有问题,但是就像上面说的如果你面对的是个大的组件,你很容易漏掉了某个值。试想一下,你是否需要这样的东西:
一个很小的changed()工具方法就能帮我们把这些脏活累活都干了,而且能告诉我们是否有值变化了,如下图所示(你也可以自定义一些log的样式:P)。
const changed = (name, keys, old, v) => {for ...阅读全文

[译]Redux : 一个启发自Flux的架构风格

作者:JerryXia | 发表于 , 阅读 (0)
原文
Redux和Flux一样使用单向的数据流,但是其只有一个store,此store的改变是通过另外复制一份原有store,然后执行一些无副作用的纯函数完成的。Redux没有Dispacher。
Redux是一个启发自Facebook Flux和Elm的应用框架。和Flux一样,在redux中数据流也是单向的,这样可以简化应用的架构,然后更方便调试。和Flux的不一样的是,在Redux中,只存在一个store,其包含了应用中所有的state。这个store是一个对象树,并且是不可修改的。每当state需要改变,都会重新创建一个新的对象树,新的对象树由之前的state和变化合并而成。当一个action被dispatch到store时,便会触发一次state改变。action是一个包含了操作类型和一些参数的简单对象。改变是由reducer处理的,reducer是纯函数,没有副作用,它使用之前的state和一个action作为参数。会根据action,返回一个全新的state。
Store不是一个class,它是一个对象加上了一些方法。在根reducer运行时,会根据应用的初始sta...阅读全文

[译]推荐5个值得学习React Native的开源项目

作者:JerryXia | 发表于 , 阅读 (0)
最好的学习编码的方式就是读源码 -- 某个高级程序员
读源码是最好也是最有效的提升自身编码能力的方式,特别是当该项技术比较新然后它的标准还在不停改进的时候。ReactNatve就是其中一个。它的API随着每次发布还在持续的迭代    ,你会碰到很多需要选择的工具然后除了一些简单的HelloWorld教程,稍微深入些的教程比较少。于是,我们还是来读读别人的开源项目源码吧,下面是我follow的5个:
1.HackerNews-React-Native

这个项目展示了HackerNews的ReactNative轻量级实现。它能够帮助你理解怎样去交互以及怎么用框架提供的组件实现一个相对完整的项目,在你还不太理解整个框架的时候。
2.Snowflake

Snowflake其实不是一个项目;它是一个ReactNative的比较细致的教程。它有比较仔细的解释还有视频截图确保你能够理解。如果想要深入了解ReactNative,我个人比较推荐仔细研究这个项目。
3.React-Native-NW-React-Calculator

这是一个跨平台的(Web / Mac App ...阅读全文

[vue.js学习笔记1] 搭建vue.js本地开发框架

作者:JerryXia | 发表于 , 阅读 (0)
去年一年,用angular和react做了多个项目。在两者之间换来换去,一方面享受着angular双向绑定带来的傻瓜式的便利,一方面喜欢react的组件及redux的单向数据流带来的调试的便利,和time travel的爽快。总想着有什么东西是介于两者之间的。第一眼看到vue.js的时候,我觉得好像这就是我想要的东西, 于是决定从零开始学习。
看了遍vue.js的开发文档,觉得大部分是在angular或者react中相似的概念,于是就照着以往的经验,想搭建一个本地开发的架子出来,方便以后进一步学习实践。列出来以下的内容:
我想要一个最初始的boilerplate -- vue-cli我想要类似angular中ui-router的东西 -- vue-router我想要angular中$http的东西 -- vue-resource我想要用sass -- 在vue.js中好方便我想要类似flux,redux的数据流 -- vuex(本文暂不涉及)除了这些,vue.js还有单文件组件,一个组件一个文件,好吧,目前为止觉得好cool。
1.  使用vue-cli
vue.js官方给出了...阅读全文