当前位置: 首页 > news >正文

React 组件

文章目录

  • React 组件
  • 复合组件


React 组件

在这里插入图片描述

本节将讨论如何使用组件使得我们的应用更容易来管理。

接下来我们封装一个输出 “Hello World!” 的组件,组件名为 HelloMessage:

React 实例

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 实例</title>
<script src="http://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
<script src="http://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
<script src="http://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">var HelloMessage = React.createClass({render: function() {return <h1>Hello World!</h1>;}});ReactDOM.render(<HelloMessage />,document.getElementById('example'));</script>
</body>
</html>

运行效果:
在这里插入图片描述

实例解析:

React.createClass 方法用于生成一个组件类 HelloMessage。

<HelloMessage /> 实例组件类并输出信息。

注意:原生 HTML 元素名以小写字母开头,而自定义的 React 类名以大写字母开头,比如 HelloMessage 不能写成 helloMessage。除此之外还需要注意组件类只能包含一个顶层标签,否则也会报错。

如果我们需要向组件传递参数,可以使用 this.props 对象,实例如下:

React 实例

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 实例</title>
<script src="http://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
<script src="http://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
<script src="http://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">var HelloMessage = React.createClass({render: function() {return <h1>Hello {this.props.name}</h1>;}});ReactDOM.render(<HelloMessage name="www.csdn.net" />,document.getElementById('example'));</script>
</body>
</html>

运行效果:
在这里插入图片描述

以上实例中 name 属性通过 this.props.name 来获取。

注意:在添加属性时, class 属性需要写成 className ,for 属性需要写成 htmlFor ,这是因为 class 和 for 是 JavaScript 的保留字。

复合组件

我们可以通过创建多个组件来合成一个组件,即把组件的不同功能点进行分离。

以下实例我们实现了输出网站名字和网址的组件:

React 实例

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>React 实例</title>
<script src="http://cdn.bootcss.com/react/15.4.2/react.min.js"></script>
<script src="http://cdn.bootcss.com/react/15.4.2/react-dom.min.js"></script>
<script src="http://cdn.bootcss.com/babel-standalone/6.22.1/babel.min.js"></script>
</head>
<body>
<div id="example"></div>
<script type="text/babel">var WebSite = React.createClass({render: function() {return (<div><Name name={this.props.name} /><Link site={this.props.site} /></div>);}
});var Name = React.createClass({render: function() {return (<h1>{this.props.name}</h1>);}
});var Link = React.createClass({render: function() {return (<a href={this.props.site}>{this.props.site}</a>);}
});ReactDOM.render(<WebSite name="CSDN" site=" http://www.csdn.net" />,document.getElementById('example')
);</script>
</body>
</html>

实例中 WebSite 组件使用了 Name 和 Link 组件来输出对应的信息,也就是说 WebSite 拥有 Name 和 Link 的实例。

http://www.lryc.cn/news/66355.html

相关文章:

  • 硕士学位论文的几种常见节奏
  • 找兄弟单词
  • python字典翻转教学
  • sentinel 随笔 3-降级处理
  • 如何解决IP能ping通但无法上网的问题?
  • Autosar实践-CANTp
  • Redis简介
  • 报错问题修改
  • 专访惠众科技|元宇宙应用如何借助3DCAT实时云渲染实现流畅大并发呈现?
  • 加速开放计算产业化,OCTC五大原则瞄准需求痛点
  • 【RabbitMQ】安装及六种模式
  • 数据结构刷题(三十一):1049. 最后一块石头的重量 II、完全背包理论、518零钱兑换II
  • opencv_c++学习(四)
  • 基于AT89C51单片机的篮球计时记分设计
  • 并发编程-Day2
  • 第1章 Nginx简介
  • 一个.Net功能强大、易于使用、跨平台开源可视化图表
  • 浅谈 ext2 文件系统的特点、优缺点以及使用场景
  • Map和Set数据结构和ES6模块化语法
  • 10_Uboot启动流程_2
  • python+django汽车4S店零配件保养服务管理系统
  • STM32F4的输出比较极性和PWM1,PWM2的关系
  • 易优cms伪静态,EyouCms去除URL中的index.php
  • 【自然语言处理】【大模型】CodeGeeX:用于代码生成的多语言预训练模型
  • Open3D 非线性最小二乘拟合二维多项式曲线
  • kafka消息队列的两种模式
  • python语法复习
  • 02-Java基础编程
  • 武忠祥老师每日一题||定积分基础训练(十)
  • C/C++趣味程序设计百例(41~50)