Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

几行代码理解:传入react组件的对象或者数组作为props,何时触发组件重绘 #17

Open
YutHelloWorld opened this issue Nov 30, 2017 · 0 comments

Comments

@YutHelloWorld
Copy link
Owner

qq20171130-103536 2x
mobx中文文档-理解mobx对什么有反应中有上面一张图。

我们通过下面几行代码理解:

  1. 对象
var o = { a: 1 }
// 对象o改变前
 var o1 = o
 o.a = 2
//  对象o改变后
 var o2 = o
 o2 === o1  // true
var o = { a: 1 }
// 对象o改变前
 var o1 = o
 o = { a: 2 }
// 对象o改变后
 var o2 = o
 o2 === o1  // false
  1. 数组
 var a = [1, 2] 
 var a1 = a
 a[0] = 3 
 var a2 = a
 a2 === a1  // true
 var a = [1, 2] 
 var a1 = a
 a = [3, 2]
 var a2 = a
 a2 === a1  // false

组件是否重绘就取决于props 或者 state 是否改变,以及shouldComponentUpdate是否返回true。这里讨论对象或者数组作为props 传入组件。只有对象或者数组真正的改变,才会触发重绘。

当我们搭配redux时,redux的不可变state解决了引用数据类型没有真正改变的问题。而当使用mobx时,就要注意何时数据真正的改变,何时组件重绘了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant