实例讲解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 轻松搞定快捷留言功能 只需一行代码
Apr 01 Javascript
jquery多浏览器捕捉回车事件代码
Jun 22 Javascript
js获取视频时长代码
Apr 10 Javascript
一个css与js结合的下拉菜单支持主流浏览器
Oct 08 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
Jun 11 Javascript
多个js毫秒倒计时同时进行效果
Jan 05 Javascript
jQuery购物网页经典制作案例
Aug 19 Javascript
BootStrap 超链接变按钮的实现方法
Sep 25 Javascript
Bootstrap风格的zTree右键菜单
Feb 17 Javascript
详解vue-router 2.0 常用基础知识点之导航钩子
May 10 Javascript
antd多选下拉框一行展示的实现方式
Oct 31 Javascript
React + Threejs + Swiper 实现全景图效果的完整代码
Jun 28 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
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
php支付宝在线支付接口开发教程
2016/09/19 PHP
利用PHP实现开心消消乐的算法示例
2017/10/12 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
一些常用弹出窗口/拖放/异步文件上传等实用代码
2013/01/06 Javascript
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
js 高效去除数组重复元素示例代码
2013/12/19 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
JavaScript交换两个变量值的七种解决方案
2016/12/01 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
vue axios 二次封装的示例代码
2017/12/08 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
[00:36]DOTA2风云人物相约完美“圣”典 12月17日不见不散
2016/11/30 DOTA
[01:12:35]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
Python中字典和JSON互转操作实例
2015/01/19 Python
Python标准库06之子进程 (subprocess包) 详解
2016/12/07 Python
Python2.7读取PDF文件的方法示例
2017/07/13 Python
python+splinter自动刷新抢票功能
2018/09/25 Python
详解Python3 pickle模块用法
2019/09/16 Python
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
中学教师实习自我鉴定
2013/09/28 职场文书
简单的大学生自我鉴定
2014/02/18 职场文书
机械设计及其自动化专业求职信
2014/06/09 职场文书
党员群众路线对照检查材料思想汇报
2014/09/17 职场文书
安徽导游词
2015/02/12 职场文书
退休教师追悼词
2015/06/23 职场文书
手把手教你实现PyTorch的MNIST数据集
2021/06/28 Python
Python可视化学习之seaborn调色盘
2022/02/24 Python