Thoughts of ReactNative

使用 ReactNative 开发半年有余,本文是作为一些简单的感想。 官网简介: Build native mobile apps using JavaScript and React. 简约,不简单。看着很牛逼,但实际用起来总是差了点意思。 总而言之:帮你节省时间的同时,隐藏着无处不在的坑。 关于框架本身 🔗 一个东西要辩证地看:ReactNative 的伟大之处在于它的定位,再一次验证了一句古老的预言:一切能用 JavaScript 实现的东西,终

Auto-height Webview of ReactNative

自动高的 Webview 实现方式其实跟 iframe 无二,无非是计算其内容高度后再赋值给容器样式。但是普通的办法实际上用起来差强人意,其问题主要体现在页面加载过慢,需要整个页面(包括图片)加载完成后才能计算出高度。而实际想要的效果往往是跟普通“网页”的表现一致,即:先加载文字,图片等内容异步加载、显示。在尝试了多款开源解决方案后,问题均没有得到解决,因此有了自己动手的想法。 不过本方案目前也只适用于自己拼接的 HTML,不适用于直接打开链接的 Webview,应用场景主要

关于 Moment.js 的一些思考

Moment.js 是一个流行的基于 JavaScript 的时间处理工具库。应该是一个从 2011 年开始启动的项目,至今它的 Github repo 也有了 3w+ 的星星,可以说在前端界人尽皆知了。反正我自从用了它基本上就没再接触过其它的相关库。 但最近我却对它的看法却产生了些许改变。原因是,它的 API 设计给使用者埋下了巨大无比的坑,简单来说:“名不副实”。 具体看图吧: 很明显,调用 Moment.js 的 API 产生了预期之外的副作用。函数在带有返回值的同

Linux Setup for Work

因为各种烦人的原因,公司搬家后到新办公室第一件事先把老电脑格了。犹豫了一下,最终还是放弃了重装 Windows,支持我做出选择的原因有几: 不需要进行(纯)MS 系开发 没有必须使用的 Windows 软件 Windows 上跑 Android emulator 卡得头疼 NVIDIA 已有支持 Linux 的官方显卡驱动 Linux 开发效率更高 Linux 学习价值更高 本文是办公室适用(对我来说)的安装记录。 System installation ㈛

2017

今天是 2017 年的最后一个(法定)工作日。做个简单的总结。 先对比一下去年的自己与目标: 关于工作,年初就换了。现在到了一个游戏公司(西山居)上班。对于去年吐槽最多的「业务」问题来说,如今算是彻底解决了。 关于学习,感觉自己从某些方面来说,是有一点进步的。 关于生活,今年入了两台主要设备,一台 RMBP,以及一台游戏主机。感觉都很值。 大概就这些。 职业 🔗 现在回头想想,自己通过公交车上下班已经快一年了,每天两个小时在路上,时间真的过得很快(好在公

《芳华》

我个人非常喜欢冯导的这部电影。 我的理解,这部电影的内容、主题,就跟它的名字一样,芳华。虽然我不是生活在那个年代的人,但是我也许可以理解那些都是什么。电影把一代人最美的形象,最好的年华,最真的梦想,展示给了我们看。相信这一点没有争议,不用过多解释。 至于其它的,我觉得都不重要。 有些人在这个故事里看到的更多是人的「恶」。如林丁丁,如红二代,如政委。认为所谓的「战友情」不过是镜花水月。但是,生活不就是这样的吗? 在电影里面,最终没有任何事情被追究,就连「迫害」了刘峰的林丁丁,最

Upgrade Projects Built by vue-cli

使用 vue-cli 创建的脚手架项目,目前最大的问题是创建后无法自动地进行升级。虽然 3.0 版本已经计划将其作为头等大事来进行改善 (#589),但是现行的版本依然要面对它。以下基于 webpack template 来进行升级时的一些要点解析。 依赖 🔗 项目整体升级的一个重要目的体现在依赖的升级,如 webpack 从老版本 2 升级到 3,以及 babel / eslint 等各种配套工具的升级(至于 Vue 反倒不是什么大问题)。 在对依赖进行升

JSX in Vue.js

在基于 Webpack 的 Vue 项目中添加 JSX 支持: $ yarn add babel-plugin-syntax-jsx babel-plugin-transform-vue-jsx babel-helper-vue-jsx-merge-props --dev 各依赖的作用: babel-plugin-syntax-jsx 提供基础的 JSX 语法转换 babel-plugin-transform-vue-jsx 提供基于 Vue 的 JSX 特殊语法 bab

Serve static with PM2

Command (2.4.0+): $ pm2 serve <path> <port> For example: $ pm2 serve /dist 80 By default, it displays 404.html from the serving directory when that happens (NOT configurable).

Common-used Commands

Personal common-used commands list, including windows, osx, git, etc. Git 🔗 Clone 🔗 Full clone $ git clone [url] Fast clone $ git clone --depth=1 [url] $ git fetch --unshallow Fetch 🔗 $ git fetch [origin] [branch]