为 Vue 组件库实现国际化支持
其实这部分代码主要是参考着 element ui 和 iview 做的(iview 又是抄的 element),对关键代码进行了一些简化。主要需要实现的需求有:
- 用户可以更改、切换组件库使用的语言(应用级别)
- 用户可以自定义组件使用的措辞
- 兼容
vue-i18n
这个库
其实这部分代码主要是参考着 element ui 和 iview 做的(iview 又是抄的 element),对关键代码进行了一些简化。主要需要实现的需求有:
vue-i18n
这个库Travis CI 是一款免费的持续集成工具,可以与 Github 无缝集成。能够自动完成项目代码的日常测试、编译、部署等工作。现在,我把它应用到了我的两个项目中。
首先,要在这个平台上做持续集成的前提是到它上面 https://travis-ci.org/ 去注册个账号。实际上直接用 Github 账号进行 OAuth 登录就行了。登录以后可以在首页找到自己的所有仓库,在需要进行持续集成的项目前面的开关打开即可。开启后,Travis CI 会监听项目的代码推送与 PR,当发生改变时会立刻进行相应操作。
至于具体操作内容,由项目根目录的 .travis.yml
文件决定。这个文件的简单用法由下面两个具体例子来说明。
一点微小的工作。
Demo: https://uiv.wxsm.space
Github: https://github.com/wxsms/uiv
NPM: https://www.npmjs.com/package/uiv
项目使用 MIT 许可,随便用。
CSS Transition 中的高度从 0 到 auto 以及从 auto 到 0 是个艰难的任务(相比于其它属性的 transition 而言),原因也很简单:就是浏览器不支持此类 CSS 动画,无论在何种情况下,它都不会成功。
但是高度渐变是个很常用的动画效果,如果绕过纯 CSS height
属性,有如下方式来实现:
max-height
属性,为元素设置一个不可能达到的最大高度,然后将 transition 转换为 max-height
从 0 到某个固定的值;transform: scaleY
实现;上面的解决方案都从某种程度上解决了问题,但是,各有各的限制于缺点:
max-height
会造成动画效果与预期有些许出入(加速与延迟),实际体验是,它与实际 height
区别越大,这种感觉就会越明显,原因也很容易想到,因为 transition 的起点与终点均不在实际的起点与终点上;scaleY
有两个问题:一是动效与高度渐变不一样,元素的内容看上去是被压缩了(而不是被收起或展开),这个倒可以忍耐。可恶的是第二点,它虽然看起来是渐变了,然而高度却并没有被渐变!意思是,在它下面的元素会在动画结束后”跳”到另一个位置而不是平滑地渐变到这个位置;所以,我的目标是:
这实际上是一个很艰难的任务。经过了大量的失败尝试,最终还是 google 救了我。。下面先直接上解决方案。
Use brew
to install polipo
via socks proxy:
$ ALL_PROXY=socks5://127.0.0.1:9500 brew install polipo |
Create polipo.config
file under Document
:
socksParentProxy = "127.0.0.1:9500" |
Start polipo server:
$ polipo -c ~/Documents/polipo.config |
Verify it at http://localhost:8123
.
Use privoxy tool. Download: http://www.privoxy.org/sf-download-mirror/Win32/
Install it, find the config file at \Privoxy\config.txt
, append following to the bottom of it:
forward-socks5 / 127.0.0.1:9500 . |
(Mind the dot at the end)
The default port is 8118
, search from the config file to replace it.
Egret Engine 的学习笔记。
Egret Engine 是一款基于 JavaScript 的游戏制作引擎,支持 2D 与 3D 模式,支持 Canvas 与 WebGL 渲染,目前使用 TypeScript 编写。
如题,经过长期痛苦的观察以及 debug 过程,以下原因被一一排除:
ng-repeat
没有添加 track by key
导致的性能问题实际原因却是因为 MEAN.js 在全局引入了 ngAnimate
依赖。(也算是一个架构问题?)
因此解决办法:
transition: none !important
React 学习笔记(基础篇)。
经过一些努力,把博客迁移到了 Github Pages,将域名改成了自定义,并且成功启用了 SSL,以下是步骤(就不截图了)。