实例讲解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 屏蔽一个区域内的所有元素,禁止输入
Oct 22 Javascript
js两行代码按指定格式输出日期时间
Oct 21 Javascript
封装html的select标签的js操作实例
Jul 02 Javascript
javascript原始值和对象引用实例分析
Apr 25 Javascript
javascript检测flash插件是否被禁用的方法
Jan 14 Javascript
JavaScript浏览器对象之一Window对象详解
Jun 03 Javascript
AngularJS基础 ng-selected 指令简单示例
Aug 03 Javascript
分享5个好用的javascript文件上传插件
Sep 16 Javascript
Javascript实现动态时钟效果
Nov 17 Javascript
详解ES6 Promise的生命周期和创建
Aug 18 Javascript
浅析JS中NEW的实现原理及重写
Feb 20 Javascript
基于element-ui封装可搜索的懒加载tree组件的实现
May 22 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 COOKIE及时生效的方法介绍
2014/02/14 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
分享PHP守护进程类
2015/12/30 PHP
php实现学生管理系统
2020/03/21 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
PHP的mysqli_thread_id()函数讲解
2019/01/24 PHP
Packer 3.0 JS压缩及混淆工具 下载
2007/05/03 Javascript
window.open被浏览器拦截后的自定义提示效果代码
2007/11/19 Javascript
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
jquery插件制作 图片走廊 gallery
2012/08/17 Javascript
Javascript中call的两种用法实例
2013/12/13 Javascript
textarea焦点的用法实现获取焦点清空失去焦点提示效果
2014/05/19 Javascript
js实现网站最上边可关闭的浮动广告条代码
2015/09/04 Javascript
Vue实现自带的过滤器实例
2017/03/09 Javascript
利用jsonp与代理服务器方案解决跨域问题
2017/09/14 Javascript
vue-router+vuex addRoutes实现路由动态加载及菜单动态加载
2017/09/28 Javascript
完美解决mui框架off-canvas侧滑超出部分隐藏无法滚动的问题
2018/01/25 Javascript
利用JavaScript将Excel转换为JSON示例代码
2019/06/14 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
Python压缩和解压缩zip文件
2015/02/14 Python
在Python下尝试多线程编程
2015/04/28 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
python检索特定内容的文本文件实例
2018/06/05 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
Python加载数据的5种不同方式(收藏)
2020/11/13 Python
DJI美国:消费类无人机领域的领导者
2018/04/27 全球购物
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
综合实践活动方案
2014/02/14 职场文书
预备党员的自我评价
2014/03/12 职场文书
2014年教师政治学习材料
2014/06/02 职场文书
催款函怎么写
2015/06/24 职场文书
电力企业职工培训心得体会
2016/01/11 职场文书
Golang 如何实现函数的任意类型传参
2021/04/29 Golang
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python
联想win10摄像头打不开怎么办?win10笔记本摄像头打不开解决办法
2022/04/08 数码科技