react函数式组件(不含hooks)


react中组件有两种,函数式组件及类式组件,下面将简单记录下函数式组件的学习

函数式组件的定义就如同他的名字一样,直接定义一个函数就行

 1 DOCTYPE html>
 2 <html lang="en">
 3 
 4 <head>
 5     <meta charset="UTF-8">
 6     <meta http-equiv="X-UA-Compatible" content="IE=edge">
 7     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 8     <title>函数式组件title>
 9     <link rel="shortcut icon" href="../favicon.ico">
10 head>
11 
12 <body>
13     <div class="test">div>
14     
15     <script type="text/javascript" src="../js/react.development.js">script>
16     
17     <script type="text/javascript" src="../js/react-dom.development.js">script>
18     
19     <script type="text/javascript" src="../js/babel.min.js">script>
20     
21     <script type="text/babel">
22         //1.创建函数式组件
23         //首字母必须大写
24         function Demo() {
25             console.log(this)//此处的this是undefined,因为babel编译后开启了严格模式
26             //函数必须有返回值
27             return <h2>我是用函数定义的组件,使用于简单组件的定义</h2>
28         }
29         //2.渲染组件到页面
30         //render参数必须写组件标签·
31         ReactDOM.render(<Demo />, document.querySelector('.test'))
32         // ReactDOM.render(Demo(), document.querySelector('.test'))
33 
34         /*
35         执行了ReactDOM.render(...之后,发生了什么
36         1.React解析组件标签,找到了Demo组件
37         2.发现组件是使用函数定义的,随后调用该函数,将返回的虚拟DOM 转为真实DOM,随后呈现在页面上
38         */
39     script>
40 
41 body>
42 
43 html>

需要注意的是组件的名字一定要以大写字母开头,否则在ReactDOM中调用时会被当成标签名并且报错(因为它不认识这个标签)