React——定义组件【六】

简介: React——定义组件【六】

前言

react定义组件,函数式组件,类组件

内容

函数式组件

适用于简单组件的定义

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</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">/*一定要以text/babel来声明*/
//1. 创建函数式组件
function Demo() {
    console.log(this) //此处的this是undefined因为babel开启了严格模式
    return  <h2>函数定义的组件(适用于简单组件的定义)</h2>
}
//2.渲染组件到页面
ReactDOM.render(<Demo/>,document.getElementById('test'))
</script>
</body>
</html>

此处的this是undefined因为babel开启了严格模式

ReactDOM.render(,document.getElementById('test'))

1. react解析组件标签,找到对应组件。
2. 发现组件是使用函数定义,随后调用该函数,将返回的虚拟DOM转为真实DOM随后呈现在页面。

类式组件

适用于复杂组件定义

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</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">/*一定要以text/babel来声明*/
class Demo extends React.Component {
    render() {
        console.log(this)
        return (
            <div>
                用类定义的组件(适用于复杂组件定义)
            </div>
        );
    }
}
ReactDOM.render(<Demo/>,document.getElementById('test'))
</script>
</body>
</html>

此处的this是Demo组件实例对象

ReactDOM.render(,document.getElementById('test'))

1. react解析组件标签,找到对应组件。
2. 发现组件是使用类定义,随后new出来该类的实例,并通过该实例调用到原型上的render方法。
3. 将render返回的虚拟DOM转为真实DOM,随后呈现在页面上。

学无止境,谦卑而行.

目录
相关文章
|
3月前
|
前端开发
如何定义和使用React泛型组件
通过合理地定义和使用React泛型组件,可以提高代码的复用性和可维护性,同时增强类型安全性,使React应用程序的开发更加高效和可靠。
185 65
|
9月前
react+typescript给state和props定义指定类型
react+typescript给state和props定义指定类型
111 1
|
9月前
|
Web App开发 存储 前端开发
第五章 在React中如何定义组件
第五章 在React中如何定义组件
135 0
|
前端开发
react实战笔记32:定义练习得结构1
react实战笔记32:定义练习得结构1
109 0
react实战笔记32:定义练习得结构1
|
前端开发
React工作47:react中initialValue和value不能一起定义
React工作47:react中initialValue和value不能一起定义
111 0
|
前端开发 JavaScript
React(0.13) 定义一个动态的组件
1.因为jsx将两个花括号之间的内容渲染为动态值,只需要引用对应的变量即可 React JS var h1 = "question"; var Divider = React.
673 0
|
前端开发 JavaScript
React(0.13) 定义一个动态的组件(函数作为动态的值)
React JS function dateToString(d){ return [d.
928 0
|
Web App开发 前端开发
React(0.13) 定义一个动态的组件(属性)
React JS function dateToString(d){ return [d.
809 0
|
Web App开发 前端开发
React(0.13) 定义一个动态的组件(注释,样式)
React JS function dateToString(d){ return [d.
833 0
|
3月前
|
前端开发 JavaScript 开发者
颠覆传统:React框架如何引领前端开发的革命性变革
【10月更文挑战第32天】本文以问答形式探讨了React框架的特性和应用。React是一款由Facebook推出的JavaScript库,以其虚拟DOM机制和组件化设计,成为构建高性能单页面应用的理想选择。文章介绍了如何开始一个React项目、组件化思想的体现、性能优化方法、表单处理及路由实现等内容,帮助开发者更好地理解和使用React。
118 9