Appearance
类组件
创建一个构造函数(类)
- 要求必须继承 React.Component/PureComponent 这个类
- 我们习惯于使用 ES6 中的 class 创建类「因为方便」
- 必须给当前类设置一个 render 的方法「放在其原型上」:在 render 方法中,返回需要渲染的视图
jsx
import React from "react";
class ClassComponent extends React.Component {
render() {
return <div>
我是类组件
</div>;
}
};
export default ClassComponent;
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
调用类组件
从调用类组件「new Vote({...})」开始,类组件内部发生的事情: 初始化属性 && 规则校验,先规则校验,校验完毕后,再处理属性的其他操作!!
方案一:
javascript
constructor(props) {
super(props); // 会把传递进来的属性挂载到 this 实例上
console.log(this.props); // 获取到传递的属性
}
1
2
3
4
2
3
4
方案二
即便我们自己不再 constructor 中处理「或者 constructor 都没写」,在 constructor 处理完毕后,React 内部也会把传递的 props 挂载到实例上;所以在其他的函数中,只要保证 this 是实例,就可以基于 this.props 获取传递的属性!
- 同样 this.props 获取的属性对象也是被冻结的
- Object.isFrozen(this.props)->true