Jory Liang

Results 8 comments of Jory Liang

@zenimchan 我直接用文件管理器打开它,然后选择用 Anki 打开,就导入成功了

@mqyqingfeng 谢谢点评和分享,另外对上面的实现有点儿疑问: 1. 判断条件 `currentState[item] !== nextState[item]` 代表地址引用改变了 `!is(currentState[item], nextState[item])` 比较 ImmutableJS 里 Collection 内部是否有更新 那为什么一定要这两个同时成立才是应该更新呢?如果使用的是 Immutable 数据,地址引用改变必然是子代有变化,那后面这个是判断什么 case 呢 2. 相比 `shallowEqual` 的实现,这里没有对 currentState 和 nextState 的引用进行直接比较,而且是直接取了里面的 key 来依次比较。那这样相比原来的实现性能会不会所有降低……毕竟如果整个...

@mqyqingfeng 稍微有点理解了,不过一般情况下在使用 Immutable 的 API 处理数据时,第一个判断已经足够了。`!is(currentState[item], nextState[item])` 这个判断我能想到的 case 就是 `this.state.data1.set("key", "value"),` 当 data1 set 的值和之前是一样的,这个判断可以过滤掉这种不必要的更新。

@mqyqingfeng 嗯嗯,`fromJS` 确实会出现这种问题,而 ImmutableJS 内部可能已经优化过这种情况了。我上次其实也测过,但很可能是测错了Orz... 不过那段判断更新的代码我之前应该理解的没错,引用不同但实际没更新,有点儿误打误撞23333 最近有些小忙,拖了小半个月,不过也在酝酿之前想写的 React 系列,预计这周末就开始连载啦~

@Cecilxx hi, 你这种情况,是用字面量重新生成了一个新对象,但这是 state 树比较简单的情况,如果这个 `num` 在较深的层级,就没办法简单的用字面量重新描述生成这个对象了。 比如下面这个例子: this.state.data ```js { "childObj": { "descendantObj": { "num": 0, "expand": false, }, "foo": 1 }, "fooObj": {} } ``` ##### 不使用 SCU...

@OpenEthan Gitee 根本没有多少人用,用也是某些项目提供的备选,怎么香港也跟湾湾一样坐井观天了

ES5 的寄生组合式继承,应该漏掉了一步修复构造器的指向 ```js Child.prototype.constructor = Child; ```

> > 我们会发现,相比寄生组合式继承,ES6 的 class 多了一个 Object.setPrototypeOf(Child, Parent) 的步骤。 > > 好奇 es6 多了这一个步骤的原因,继承静态属性和方法吗? 除此之外也可以通过构造方法(类)来判断两个“类”是否是继承关系吧,比如: ```js Child instanceof Parent // true ```