实例讲解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 名称冲突的解决方法
Apr 08 Javascript
关于js类的定义
Jun 28 Javascript
使用CSS样式position:fixed水平滚动的方法
Feb 19 Javascript
jQuery通过扩展实现抖动效果的方法
Mar 11 Javascript
JS模拟的Map类实现方法
Jun 17 Javascript
浅谈Javascript事件对象
Feb 05 Javascript
让微信小程序支持ES6中Promise特性的方法详解
Jun 13 Javascript
详解用vue.js和laravel实现微信授权登陆
Jun 23 Javascript
react配合antd组件实现的管理系统示例代码
Apr 24 Javascript
vue使用中的内存泄漏【推荐】
Jul 10 Javascript
JavaScript动态检测密码强度原理及实现方法详解
Jun 11 Javascript
vue列表数据发生变化指令没有更新问题及解决方法
Jan 16 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
Terran兵种对照表
2020/03/14 星际争霸
php购物网站支付paypal使用方法
2010/11/28 PHP
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
如何使用PHP批量去除文件UTF8 BOM信息
2013/08/05 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
php实现中文字符截取防乱码方法汇总
2015/04/29 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
PHP数组实例详解
2016/06/26 PHP
Redis构建分布式锁
2017/03/28 PHP
才发现的超链接js导致网页中GIF动画停止的解决方法
2007/11/02 Javascript
window.onload 加载完毕的问题及解决方案(上)
2009/07/09 Javascript
jQuery 使用手册(六)
2009/09/23 Javascript
3种Jquery限制文本框只能输入数字字母的方法
2014/12/03 Javascript
js+html5通过canvas指定开始和结束点绘制线条的方法
2015/06/05 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
实现React单页应用的方法详解
2016/08/02 Javascript
javascript  删除select中的所有option的实例
2017/09/17 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
layer插件select选中默认值的方法
2018/08/14 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
JavaScript 实现HTML DOM增删改查操作的常见方法详解
2020/01/04 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
django 创建过滤器的实例详解
2017/08/14 Python
深入理解Python中range和xrange的区别
2017/11/26 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
Django 创建新App及其常用命令的实现方法
2019/08/04 Python
python利用openpyxl拆分多个工作表的工作簿的方法
2019/09/27 Python
python 如何实现遗传算法
2020/09/22 Python
详解css3 object-fit属性
2018/07/27 HTML / CSS
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
纯html5+css3下拉导航菜单实现代码
2013/03/18 HTML / CSS
美国在线工具商店:Acme Tools
2018/06/26 全球购物
英国书籍、CD、DVD和游戏的第一道德零售商:Awesome Books
2020/02/22 全球购物
交通事故和解协议书
2014/09/25 职场文书
2016年情人节广告语
2016/01/28 职场文书