We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
No description provided.
The text was updated successfully, but these errors were encountered:
因为组件直接修改state,不会重新触发render函数,不会重新渲染页面,要通过setState方法传入参数去更改并渲染。
immutable是一种持久化数据。一旦被创建就不会被修改。修改immutable对象的时候返回新的immutable。但是原数据不会改变。
这个对象用来解决深拷贝的问题
对于字符串类型,浅拷贝是对值的拷贝,对于对象来说,浅复制式对对象地址的复制,并没有开辟新的栈,深拷贝则是开辟新的栈,两个对象对应两个不同的地址。
接着上面的问题,因为深拷贝的性能问题,redux引入了immutable,因为深拷贝数据太庞大的话,系统需要的开销就很大,当你需要使用immutable数据的时候,只会拷贝你改变的节点,从而节省性能。
复制的思路如下图:
immutable中的API和数组、对象的遍历方法差不多;
之中的State和默认的区别在于,你用immutable设定的state跟默认的采用的赋值方式不同,如果你要通过setState进行修改,一个是对原来的state本身进行修改,而设定了immutable之后的state,会返回一个新的对象,你可以用一个变量对这个变量进行接受,没有修改的值是没有改变的,可以正常访问。
state多用于数据初始化,状态需要改变的场景,例如,你需要通过一个list展示state的数据;
props多用于父组件和子组件的通信,通过传参,子组件可以更改父组件中的状态,从而达到子组件跟父组件的简单通信。
也可以通过props对数据进行限制,利用propTypes进行设置,也可以设置默认值,通过defaultProps属性进行设置。
例子:
import PropTypes from 'prop-types'; const SubComponent=(props)=> { return (<h1>{props.name}</h1>) } SubComponent.defaultProps = { name: 'Rain_tdk' }; SubComponent.propTypes = { name: PropTypes.string };
Sorry, something went wrong.
No branches or pull requests
No description provided.
The text was updated successfully, but these errors were encountered: