1. 使用React开发者工具调试
Google 浏览器安装 React Developer Tools
2. 函数式组件使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>1_函数式组件</title>
</head>
<body>
<!-- 准备好一个“容器” -->
<div id="test"></div>
<!-- 引入react核心库 -->
<script type="text/javascript" src="../js/react.development.js"></script>
<!-- 引入react-dom,用于支持react操作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>
<script type="text/babel">
//1.创建函数式组件
function MyComponent(){
console.log(this); //此处的this是undefined,因为babel编译后开启了严格模式
return <h2>我是用函数定义的组件(适用于【简单组件】的定义)</h2>
}
//2.渲染组件到页面
ReactDOM.render(<MyComponent/>,document.getElementById('test'))
/*
执行了ReactDOM.render(<MyComponent/>.......之后,发生了什么?
1.React解析组件标签,找到了MyComponent组件。
2.发现组件是使用函数定义的,随后调用该函数,将返回的虚拟DOM转为真实DOM,随后呈现在页面中。
*/
</script>
</body>
</html>
3. 类式组件的使用
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>类式组件</title>
</head>
<body>
<!-- 准备好一个容器 test -->
<div id="test"></div>
<!-- 引入react核心库-->
<script type="text/javascript" src="../js/react.development.js"></script>
<!--引入 react-dom 用于支持 react 操作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>
<script type="text/babel">
//1.创建类式组件
class MyComponent extends React.Component{
render(){
//render 是放在哪里的? --MyComponent的原型对象上,供实例使用
//render 中的this是谁? --MyCompinent的实例对象
console.log('render中的this:',this);
return <h2>我是用类定义的组件(适用于【复杂组件】的定义)</h2>
}
}
ReactDOM.render(<MyComponent/>,document.getElementById('test'));
/*
执行了 ReactDOM.render(<MyComponent/>)....之后发生了什么?
1. react解析组件标签,找到MyComponent组件
2. 发现组件是使用类定义的,随后new 出来该类的实例,并通过该实例调用到原型上的render方法
3. 将render 返回的虚拟DOM转为真实DOM。随后呈现在页面中
*/
</script>
</body>
</html>