<!DOCTYPE html>
<html>
<head>
<meat charset="UTF-8">
<title>2_类式组件中的构造器与props</title>
</head>
<body>
<!-- 准备好一个容器 -->
<div id="test1"></div>
<div id="test2"></div>
<div id="test3"></div>
<!-- 核心库 -->
<script type="text/javascript" src="../js/react.development.js"></script>
<!-- react-dom,操作dom -->
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<!-- 引入babel,jsx转为js -->
<script type="text/javascript" src="../js/babel.min.js"></script>
<!-- 此处一定要写babel -->
<script type="text/babel">
//1.创建组件
class Person extends React.Component{
constructor(props){
//构造器是否接受props,是否传递给super,取决于:是否希望在构造器中通过this访问props
console.log(props);
super(props);
console.log('constructor',props);
}
//对标签属性进行类型、必要性的限制
// static propTypes = {
// name:PropTypes.string.isRequired, //限制name必传,且为字符串
// sex:ProTypes.string, //限制sex为字符串
// age:ProTypes.number, //限制age为数值
// }
//指定默认标签属性值
static defaultProps={
sex:'男',//sex默认值为男
age:18 //age默认值为18
}
render(){
console.log(this);
const {name,age,sex} = this.props
return(
<ul>
<li>姓名:{name}</li>
<li>性别:{sex}</li>
<li>年龄:{age}</li>
</ul>
)
}
}
//2.渲染组件到页面
ReactDOM.render(<Person name="jerry"/>, document.getElementById('test1'));
</script>
</body>
</html>