实例讲解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实例教程(19) 使用HoTMetal(5)
Dec 23 Javascript
几行代码轻松搞定jquery实现flash8类似的连接效果
May 03 Javascript
基于jQuery的图片大小自动适应实现代码
Nov 17 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
Oct 30 Javascript
javascript限制用户只能输汉字中文的方法
Nov 20 Javascript
jQuery多个input求和的实现方法
Feb 12 Javascript
javascript下拉框选项单击事件的例子分享
Mar 04 Javascript
jQuery实现html元素拖拽
Jul 21 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
Oct 01 Javascript
Javascript的无new构建实例详解
May 15 Javascript
node.js支持多用户web终端实现及安全方案
Nov 29 Javascript
详解Vue之计算属性
Jun 20 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+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
PHP表单提交后引号前自动加反斜杠的原因及三种办法关闭php魔术引号
2015/09/30 PHP
关于 byval 与 byref 的区别分析总结
2007/10/08 Javascript
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
jquery使用淘宝接口跨域查询手机号码归属地实例
2013/11/28 Javascript
利用JavaScript的AngularJS库制作电子名片的方法
2015/06/18 Javascript
利用HTML5的画布Canvas实现刮刮卡效果
2015/09/06 Javascript
JS中使用正则表达式g模式和非g模式的区别
2017/04/01 Javascript
nodejs获取微信小程序带参数二维码实现代码
2017/04/12 NodeJs
JQuery Ajax 异步操作之动态添加节点功能
2017/05/24 jQuery
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
NodeJs项目中关闭ESLint的方法
2018/08/09 NodeJs
Vue2 添加数据可视化支持的方法步骤
2019/01/02 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
Vue-cli3.x + axios 跨域方案踩坑指北
2019/07/04 Javascript
js实现省级联动(数据结构优化)
2020/07/17 Javascript
[04:47]DOTA2-潍坊风行电子俱乐部探秘
2014/08/08 DOTA
[00:34]TI7不朽珍藏III——纯金地穴编织者饰品展示
2017/07/15 DOTA
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
使用pycharm和pylint检查python代码规范操作
2020/06/09 Python
Python filter()及reduce()函数使用方法解析
2020/09/05 Python
HTML5 客户端数据库简易使用:IndexedDB
2019/12/19 HTML / CSS
Windows和Linux动态库应用异同
2016/04/17 面试题
数学教育专业求职信
2014/07/22 职场文书
学生实习证明范文
2014/09/28 职场文书
关于工作经历的证明书
2014/10/11 职场文书
校园会短篇的广播稿
2014/10/21 职场文书
九不准学习心得体会
2016/01/23 职场文书
2016年师德先进个人事迹材料
2016/02/29 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
何时使用Map来代替普通的JS对象
2021/04/29 Javascript
在MySQL中你成功的避开了所有索引
2022/04/20 MySQL