Menu

自己对Hybrid的总结思考

󰁩2016-12-11

公司最近上线了一款Hybrid App,所谓Hybrid是指Web和Native的混合形态,很大的一个好处就是Web部分的内容可以随时发布更新,应用无需重新发布。我负责的那部分并没有和Native交互的地方,所以代码和写纯Web时没什么区别。结合整个项目的代码,和一篇来自有赞技术团队的H5与Native交互之JSBridge技术文章,总结一下我自己对Hybrid的认识。

More +

Angular.js中的manualLowercase/manualUppercase

󰁩2016-11-13

今天在看Angular源码时看到了这么一段:

// src/Angular.js
var lowercase = function(string) {return isString(string) ? string.toLowerCase() : string;};
var uppercase = function(string) {return isString(string) ? string.toUpperCase() : string;};

var manualLowercase = function(s) {
  /* eslint-disable no-bitwise */
  return isString(s)
      ? s.replace(/[A-Z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) | 32);})
      : s;
  /* eslint-enable */
};
var manualUppercase = function(s) {
  /* eslint-disable no-bitwise */
  return isString(s)
      ? s.replace(/[a-z]/g, function(ch) {return String.fromCharCode(ch.charCodeAt(0) & ~32);})
      : s;
  /* eslint-enable */
};

前两个函数很容易就看出来了,用来进行大小写转换,后两个函数明显也是进行大小写转换,只是通过位运算来进行。但是为什么要这么写呢?

More +

[译]如何使用Rollup打包样式文件并添加LiveReload

󰁩2016-10-31

通过这个教程学习如何使用JavaScript打包工具Rollup配合PostCSS来取代Grunt或Gulp处理样式文件。

上一篇文章中,我们完成了使用Rollup打包前端JavaScript入门

这篇文章包含Part IIPart III

Part II会继续在上次的项目中进行,为Rollup添加处理样式的能力,使用PostCSS进行一些转换,让我们能使用更简单的变量写法和嵌套规则等语法糖。

然后完成Part III,圆满结束。第三部分将为项目添加文件监听和LiveReload,这样每当文件变化时就不用再手动地打包bundle文件了。

More +

[译] 如果你会了SASS,你就会了ES2015

󰁩2016-08-31

如果你会了Sass,你就会了ES2015!…虽然不是全部,但也有很多惊人的相似之处!当学习最新的ECMAScript 规范,ES2015(以前被称为ES6)时,碰到了一些让我立刻想到Sass的特性。

More +

清扫笔记

󰁩2016-08-18

零散的笔记。zai在bei’wang’l在备忘录li在备忘录里tang’le在备忘录里躺了hao’jiu在备忘录里躺了好久l在备忘录里躺了好久了,集中清扫一下。

More +

使用Vue写一个datepicker

󰁩2016-08-10

前言

写插件是很有意思,也很锻炼人,因为这个过程中能发现许多的细节问题。在前端发展的过程中,jQuery无疑是一个重要的里程碑,围绕着这个优秀项目也出现了很多优秀的插件可以直接使用,大大节省了开发者们的时间。jQuery最重要的作用是跨浏览器,而现在浏览器市场虽不完美,但已远没有从前那么惨,数据驱动视图的思想倍受欢迎,大家开始使用前端框架取代jQuery,我个人比较喜欢Vue.js,所以想试着用Vue.js写一个组件出来。

为了发布到npm上,所以给项目地址改名字了,但是内部代码没有改,使用方法比之前方便。
Demo演示: Here
GitHub地址: Here
希望大家能给个star

More +

写一个自己的Hexo主题

󰁩2016-07-27

最开始折腾Hexo的时候感觉这东西很神奇,通过他和github搭配就能生成免费的静态博客,而且还有丰富的主题可以选择,当我刚入Hexo的时候默认主题是landscape,后来又使用过NexT,是一款很漂亮的主题,但是除此之外,还有很多好看的主题,我很好奇这些主题都是怎么写出来的,于是乎就仿照landscape主题开始研究,写自己的主题,也就是我自己的博客正在用的主题,项目地址在这里

完成一个Hexo的主题其实很简单,和写静态页面差不多,只是内容部分通过Hexo的变量去获取,而且Hexo还内置了一些辅助函数帮你快速方便地完成繁琐的处理。

More +

有服务器可以折腾辣

󰁩2016-07-09

前面一直用室友服务器搭的ss服务器翻墙,然后竟然被查封了账号(脸是有多黑),我电脑上的蓝灯也罢工了,最后想想还是自己买一个服务器玩玩吧,没事还可以多折腾折腾,今天在搬瓦工买了一个VPS,5刀每月的,一天一块钱,还挺不错的。

More +

Vue 起步

󰁩2016-07-03

试着使用Vue写了一个cnode的webapp,使用了Vuevue-routervue-resourceMint-UI,没有做发帖功能,也有一些地方参照了Vue-cnodejs,因为最开始没有从整体上考虑,所以有些地方处理得不好,还有些bug,repo在这

More +

原来这就是UMD

󰁩2016-06-09

JavaScript在模块化的发展过程中出现和很多概念,比如CommonJSAMD (Asynchronous Module Definition)CMD (Common Module Definition)等,后来CommonJs规范被Node.js采用,我们可以在Node.js中通过var http = require('http')这种写法来引入模块,通过module.exports来导出自定义的模块,AMD和CMD也是requirejs和seajs推广过程中的规范化产出,因此让一个模块可以同时支持这么多的规范,就需要在模块定义时进行判断处理。这个判断处理的代码在流行的库和框架中随处可见,不过今天才知道,其实这种模式叫做UMD (Universal Module Definition)

More +