实例讲解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 相关文章推荐
玩转jQuery按钮 请告诉我你最喜欢哪些?
Jan 08 Javascript
JavaScript计时器示例分析
Feb 05 Javascript
封装属于自己的JS组件
Jan 27 Javascript
CKEditor无法验证的解决方案(js验证+jQuery Validate验证)
May 09 Javascript
jQuery EasyUI ProgressBar进度条组件
Feb 28 Javascript
AngularJS基于MVC的复杂操作实例讲解
Dec 31 Javascript
JavaScript图片处理与合成总结
Mar 04 Javascript
JS实现仿微信支付弹窗功能
Jun 25 Javascript
基于JS实现数字动态变化显示效果附源码
Jul 18 Javascript
vue中监听路由参数的变化及方法
Dec 06 Javascript
vue.js iview打包上线后字体图标不显示解决办法
Jan 20 Javascript
vue-router之解决addRoutes使用遇到的坑
Jul 19 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
用php实现像JSP,ASP里Application那样的全局变量
2007/01/12 PHP
56.com视频采集接口程序(PHP)
2007/09/22 PHP
PHP设计模式之结构模式的深入解析
2013/06/13 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
php实现的错误处理封装类实例
2017/06/20 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
php如何比较两个浮点数是否相等详解
2019/02/12 PHP
jquery load()在firefox(火狐)下显示不正常的解决方法
2011/04/05 Javascript
基于jquery的代码显示区域自动拉长效果
2011/12/07 Javascript
理解javascript中的原型和原型链
2015/07/30 Javascript
javascript如何实现暂停功能
2015/11/06 Javascript
理解JS事件循环
2016/01/07 Javascript
基于JavaScript实现的插入排序算法分析
2017/04/14 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
2017/05/10 Javascript
基于JS实现移动端左滑删除功能
2017/07/28 Javascript
Angular浏览器插件Batarang介绍及使用
2018/02/07 Javascript
基于webpack4搭建的react项目框架的方法
2018/06/30 Javascript
微信小程序实现的一键拨号功能示例
2019/04/24 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
微信小程序swiper左右扩展各显示一半代码实例
2019/12/05 Javascript
2019年度web前端面试题总结(主要为Vue面试题)
2020/01/12 Javascript
python生成随机mac地址的方法
2015/03/16 Python
win10系统下Anaconda3安装配置方法图文教程
2018/09/19 Python
python3.6下Numpy库下载与安装图文教程
2019/04/02 Python
用python给自己做一款小说阅读器过程详解
2019/07/11 Python
使用Python实现牛顿法求极值
2020/02/10 Python
Anaconda+Pycharm环境下的PyTorch配置方法
2020/03/13 Python
python程序如何进行保存
2020/07/03 Python
Nike英国官网:Nike.com (UK)
2017/02/13 全球购物
教师应聘自荐信范文
2014/03/14 职场文书
社保转移委托书范本
2014/10/08 职场文书
清洁工个人工作总结
2015/03/05 职场文书
发票退票证明
2015/06/24 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
Python软件包安装的三种常见方法
2022/07/07 Python