182018.12

之前一直在用罗技的那款蓝牙薄膜键盘,好涩,键按下去的时候像卡住一样。于是乎,就有了新键盘。先上靓照:

Plum NiZ,静电容蓝牙84键35克,赠送mac的 command键,刚开始研究了半天,最后发现fn+command组合就可以切换模式了。敲代码一天,敲击感很舒服,非常符合我的口味。唯一要吐嘈的是,厂商能不能上点心啊,不撑支架放不平,实测3张便签纸。usb线也太非主流了吧,还带闪的……难道我没注明自己是男生?说明书一张纸我就不说了……现在就是担心用时间久,白色越来越脏,丑上天。

00:34:45 已有2条回复
  1. 喜提键盘开心啊~
    印象中记得你说过,你对键盘要求是要有完整方向键和数字键。
    乍看这个没类似小键盘数字专区的,我还迟疑了下……那看来大家对数字键的存在有歧义——我以为你专门强调数字键,是指除了那一排常规数字键后,还得额外有数字区的。

    键盘白色肯定会越来越黑,你不用否定自己的担心,肯定会发生的。
    身边白色键盘用脏了的兄弟说,就当自己买了个做旧复古色。
    #677 Betty 2018-12-18 22:28 回复
  2. hahaha~你印象还挺深刻的嘛。不过我说的数字键就是指顶上那排了。
    这个键布局算是我最喜欢的一种,整块键盘几乎没浪费地方。
    唯一感觉遗憾的就是,好重啊!!!不能背出去炫耀了……
    “做旧复古色”这个说法我喜欢,哈~
    #678 回复给#677 否子戈 2018-12-19 00:41 回复
172018.12

在我出生的时代,能够超过张学友的华语歌手还没有出现。学友的歌,有些脍炙人口,但是有些,无论听多少遍,都模仿不出那个味道。我一般一首歌听两遍以上就能唱了,但是这首《慢慢》听了好多遍,仍然难以开唱。

132018.12

在项目中基于objext写了一个form-model,用以借鉴在提交表单时,对表单数据的管理。表单数据非常复杂,而且表单本身在前端领域也是非常复杂,因为表单不仅包含了数据,也包含了交互,还包含了数据与交互之间的逻辑联系(例如某个值为何时,其中某些选项不展示)。可以说,至今没有一个可以抽象到最完美状态的表单组件甚至是框架。更麻烦,我的项目中,一个表单是分步骤填写的,它在几个页面之间进行了跳转,这要求数据管理更强大,可以保持在不同界面之间的一致性。另外,表单还有一些变体,例如下拉列表变体:用一个modal打开来选。还有表单某个步骤可撤销的问题,在这个步骤填了一些值之后,想撤销,回到它们的初始值。最后,还要把表单数据在提交之前进行格式化,例如去除无用的字段,例如某些字段在前端是一个值,但传给后端的时候要转换为另外的值。而这些,我都通过对objext进行扩展得以实现,它不可能全,但在我的项目中非常实用。

12:39:38 已有0条回复
122018.12

2018腾讯圣诞晚会

今年的腾讯圣诞晚会在春茧举办,原本没票,是老板把票转给了我才有机会去看,虽然坐的位置很高,到还是感受了一下现场的感觉

23:33:26 已有0条回复

判断一个字符串是否为数字形式字符串的正则表达式

首先要判断这个变量是否为字符串类型,typeof为string.接着通过正则表达式进行判断:

/^\-{0,1}[0-9]+(\.{0,1}[0-9]+){0,1}$/

这里比判断纯数字稍微复杂一点,要考虑小数点。

10:56:42 已有0条回复
112018.12

QQ空间真的是一个充满了记忆的地方~

22:05:59 已有0条回复
102018.12

angular的作用域破坏

angular里面,有两个内置指令非常危险一个是ng-if一个是ng-repeat,这两个指令会让你在写模板的时候,输出结果不一定按照预期显示。angular里面的作用域遵循js的原型继承模型,子作用域继承父作用域,那么相当于子作用域的原型链是它父作用域的一个节点。而我们在创建一个directive的时候,scope参数有三种方式:

  • true:共享父作用域的scope,在directive内对scope的任何修改都会同步给父作用域,也就是内外scope完全是同一个
  • false:创建一个隔离作用域,和父作用域完全没有任何关系,directive内部的任何修改都不会影响父作用域的scope上的数据
  • { ...props }:创建一个有条件的隔离作用域,虽然这个作用域基本面是和父作用域隔离的,但是对象内的参数可以实现绑定,仅这些props可以产生影响,其中又有3种形式,@和&仅接收外部作用域的变化,而=可以实现内部的改动同步到外部去。也就是说,只有=的那部分是共享的。

这些知识可以随便查资料了解。

但是,ng-if和ng-repeat会打破这种共享关系。如果你在一个directive中使用了另外一个directive,而想让它们拥有同样的数据绑定(大部分情况下我们都这样希望),那么一旦你在子diretive上使用了ng-if或ng-repeat,那么情况就发生了变化。这两个内置指令会创建一个隔离作用域,而非共享父作用域。

上面这张图示意了这种令人抓狂场景产生的原因。原本,父子指令共享了一个作用域,但是当你在子指令上使用了ng-if的时候,angular内部会创建一个隔离作用域,ng-if作为指令,仅仅接收父作用域传过来的一个值,但它不会回写数据,只是控制了渲染效果。而这个时候,my-child-directive被放在ng-if作用域的内部,这时,它共享的,是ng-if的作用域,而这个时候,你把child scope打印出来看,会发现,啥也没有,父作用域的东西完全没有传过来。但是,不要心急,由于angualr作用域的继承性,你仍然可以读到一些scope上的值,但是,你不能反写,一旦你开始反写,你发现,父作用域接收不到你的反写内容。反写的内容被直接写在了ng-if scope上,而如果你精通js的原型链模型,就知道,如果一个对象的原型链上有某属性,这个时候,你再对这个对象的同名属性赋值,那么值被覆盖了,它永远无法操作原型链的上游。不过,angular可以,因为它的scope提供了父级作用域的引用$parent,所以,当你在child scope上反写不成功时,往往在前面加$parent.就行了。而如果,你的child scope本身也就是一个隔离作用域,那反写是不可能了,但你还可以通过$parent.$parent.来操作父级作用域。

遇到ng-repeat无法获取到数据时,往往是因为ng-repeat比ng-if更狠,它创建了一个更封闭的隔离作用域,但你按照上述进行思考,也可以实现自己的目的。

20:15:43 已有0条回复

React的懒加载方案

https://meddium.com/@pomber/lazy-loading-and-preloading-components-in-react-16-6-804de091c82d

React.lazy(() => import('./myComponent')) 这种方式虽然我感觉不算完美,但是也正是我想要的哦~

092018.12
072018.12

今年用上新单反后,随手就是买了两个定焦,35的一直用,50的太难控制,刚开始玩了一段时间就没用了。有一回出去玩,拍景用回自己的18-105变焦,回来看片,我的天,无论是曝光,还是色彩细腻度,全不满意,再看自己定焦拍的,真的不可同日而语。总的来说,50的画质最好,有强烈的画面感,35的普通真实,虽然不如50画面感强,但画质上也不至于差很多,而变焦镜头,呵呵了,整个画面全靠后期。今后估计是只会用定焦了,就是要换镜头麻烦,而且还缺一个广角定焦。要是世界上有一个18-35-50三档的定变焦镜头,那该多好。🙈

21:35:08 已有2条回复
  1. 有呀,这样的镜头有一个,好像是徕卡的还是谁的,反正老贵了,是老镜头了的。话说画质落差有多大?想看看
    #669 YIR 2018-12-09 14:59 回复
  2. 哈哈,你看我博客也可以发现哦,有些文章是定焦的,有的是变焦的,看你眼力了
    #670 回复给#669 否子戈 2018-12-10 19:40 回复