1、函数式组件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 移动端适配-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>1_函数式组件.html</title>
</head>
<body>
<!--准备一个容器-->
<div id="root"></div>
<!--引入react核心库-->
<script type="text/javascript" src="../js/react.development.js"></script>
<!--引入react-dom.js库,用于支持react操作DOM-->
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<!--引入babel,用于jsx的转换jsx-->
<script type="text/javascript" src="../js/babel.min.js"></script>
<script type="text/babel">/*此处一定要写babel*/
//1.创建函数式组件
function Demo(){
console.log(this);//此处this是undefined
return <h2>我是函数定义的组件(适用于【简单组件】的定义)</h2>
}
//2.渲染函数式组件到页面
ReactDOM.render(<Demo/>,document.getElementById('root'))
</script>
</body>
</html>
2、类式组件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<!-- 移动端适配-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>2_类式组件.html</title>
</head>
<body>
<!--准备一个容器-->
<div id="root"></div>
<!--引入react核心库-->
<script type="text/javascript" src="../js/react.development.js"></script>
<!--引入react-dom.js库,用于支持react操作DOM-->
<script type="text/javascript" src="../js/react-dom.development.js"></script>
<!--引入babel,用于jsx的转换jsx-->
<script type="text/javascript" src="../js/babel.min.js"></script>
<script type="text/babel">/*此处一定要写babel*/
//1.创建类式组件
class MyComponent extends React.Component{
//render放在类型原型对象上,供实例使用。
render(){
console.log('render中的this',this)
return <h2>我是类式组件(适用于【复杂组件】的定义)</h2>
}
}
//2.渲染组件到页面
ReactDOM.render(<MyComponent/>,document.getElementById('root'))
/*
执行了ReactDOM.render(<MyComponent/>,document.getElementById('root'))之后,
1.React解析组件标签,找到了MyComponent组件
2.发现组件是使用类式组件,随后new MyComponent(),并通过该实例调用到原型上的render()方法,
3.将返回的虚拟DOM转为真实DOM,并渲染到页面上
*/
</script>
</body>
</html>