实例讲解React 组件


Posted in Javascript onJuly 07, 2020

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

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

function HelloMessage(props) {
 return <h1>Hello World!</h1>;
}
 
const element = <HelloMessage />;
 
ReactDOM.render(
 element,
 document.getElementById('example')
);

实例解析:

1、我们可以使用函数定义了一个组件:

function HelloMessage(props) {
 return <h1>Hello World!</h1>;
}

你也可以使用 ES6 class 来定义一个组件:

class Welcome extends React.Component {
 render() {
 return <h1>Hello World!</h1>;
 }
}

2、const element = <HelloMessage /> 为用户自定义的组件。

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

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

function HelloMessage(props) {
 return <h1>Hello {props.name}!</h1>;
}
 
const element = <HelloMessage name="3water"/>;
 
ReactDOM.render(
 element,
 document.getElementById('example')
);

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

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

复合组件

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

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

function Name(props) {
 return <h1>网站名称:{props.name}</h1>;
}
function Url(props) {
 return <h1>网站地址:{props.url}</h1>;
}
function Nickname(props) {
 return <h1>网站小名:{props.nickname}</h1>;
}
function App() {
 return (
 <div>
  <Name name="三水点靠木" />
  <Url url="https://3water.com/" />
  <Nickname nickname="3water" />
 </div>
 );
}
 
ReactDOM.render(
  <App />,
 document.getElementById('example')
);

输出结果:

实例讲解React 组件

以上就是实例讲解React 组件的详细内容,更多关于React 组件的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
JavaScript DOM 学习第七章 表单的扩展
Feb 19 Javascript
jQuery 获取URL参数的插件
Mar 04 Javascript
js Event对象的5种坐标
Sep 12 Javascript
JS注释所产生的bug 即使注释也会执行
Nov 19 Javascript
javascript实现十六进制颜色值(HEX)和RGB格式相互转换
Jun 20 Javascript
jquery实现点击页面计算点击次数
Jan 23 Javascript
JavaScript AOP编程实例
Jun 16 Javascript
JavaScript  cookie 跨域访问之广告推广
Apr 20 Javascript
详谈for循环里面的break和continue语句
Jul 20 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
Vue 图片压缩并上传至服务器功能
Jan 15 Javascript
vue递归获取父元素的元素实例
Aug 07 Javascript
JavaScript eval()函数定义及使用方法详解
Jul 07 #Javascript
详解React 元素渲染
Jul 07 #Javascript
JS数据类型判断的几种常用方法
Jul 07 #Javascript
JavaScript实现像雪花一样的Hexaflake分形
Jul 07 #Javascript
jQuery 实现扁平式小清新导航
Jul 07 #jQuery
vue@cli3项目模板怎么使用public目录下的静态文件
Jul 07 #Javascript
JS实现移动端可折叠导航菜单(现代都市风)
Jul 07 #Javascript
You might like
在mysql数据库原有字段后增加新内容
2009/11/26 PHP
PHP5.5在windows安装使用memcached服务端的方法
2014/04/16 PHP
php防止sql注入之过滤分页参数实例
2014/11/03 PHP
PHP实现模仿socket请求返回页面的方法
2014/11/04 PHP
CodeIgniter常用知识点小结
2016/05/26 PHP
php和redis实现秒杀活动的流程
2019/07/17 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
2020/02/28 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
JavaScript代码轻松实现网页内容禁止复制(代码简单)
2015/10/23 Javascript
jQuery实现Tab选项卡切换效果简单演示
2015/11/23 Javascript
jQuery插件扩展测试实例
2016/06/21 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
Element input树型下拉框的实现代码
2018/12/21 Javascript
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
python 移动图片到另外一个文件夹的实例
2019/01/10 Python
详解python-图像处理(映射变换)
2019/03/22 Python
python学习--使用QQ邮箱发送邮件代码实例
2019/04/16 Python
PyCharm中代码字体大小调整方法
2019/07/29 Python
Jmeter HTTPS接口测试证书导入过程图解
2020/07/22 Python
python基于win32api实现键盘输入
2020/12/09 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
留学自荐信的技巧
2013/10/17 职场文书
名人演讲稿范文
2013/12/28 职场文书
阿德的梦教学反思
2014/02/06 职场文书
检查机关领导群众路线教育实践活动个人整改措施
2014/10/28 职场文书
先进单位申报材料
2014/12/25 职场文书
2015庆祝七一建党节94周年活动总结
2015/03/20 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python