分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

原创教程之——reactjs 组件入门教程

发布时间:2023-09-06 01:47责任编辑:董明明关键词:js组件

在学习react之前,希望你有以下准备:

react的安装
ECMAScript 6基础

本文不讲解react的安装步骤,若需了解请移步官方网站(https://reactjs.org/),那里讲解非常清楚,也很简单。
至于ECMAScript 6,大家可以去阮一峰老师的官网(http://www.ruanyifeng.com)学习。

这篇文章主要解决一下几个要点, 这几个要点也可能是大家在学习react时非常迷惑的地方。

要点一:
??什么是组件?

要点二:
??如何编写组件?

要点三:
??组件之间如何组合使用?

在弄清这些要点之前,我们先来看,react安装后的目录是怎样的,应该在哪个目录下进行开发。

看截图:


可以说这个就是react的标准目录结构,打开src目录:

看截图:

这个目录下就是你将要开发组件的地方。

弄清了react的目录结构,我们正式来讲解要点。

什么是组件?

请记住:文件即组件

比如在src目录下的App.js,这个App.js就是组件。你也可以自己建立一个组件,如Nav.js等等。

这个就是react的核心思想。一个网站的构成可以看成是很多组件的集合。

比如一个网站的首页分为头部,主内容区域,底部。那么这三个大区域就可以当作组件。然后每个区域里的内容块又可以当作组件,以此类推,可以划分成更小的组件。我们可以来看一张图:

说形象点组件就像定义的很多功能函数,通过配置参数,组合调用这些函数,最后就可以实现一个完整的网站。
组件的好处就是能重复使用,既能减少开发量,也能让代码干净整洁,逻辑清晰,方便阅读。

组件如此的美好,那该怎么来编写呢?

第二个问题,如何编写组件。
在编写组件之前,我自己通常把组件分成两种,非UI组件和UI组件。

看例子:

//App.jsimport React, { Component } from ‘react‘;import ‘./App.css‘;class App extends Component {render() {return ( ???<div className="App"> ?????<header className="App-header"> ??????<h1 className="App-title">Welcome to React</h1> ?????</header> ????</div>);}}export default App;

这是一个UI组件。是一个非常简单的组件。即便不了解es6的同学,也能秒懂。
由此,我们可以把UI的组件书写结构标准化,如下:

//MyApp.jsimport React, { Component } from ‘react‘;class MyApp extends Component { ???//其它的功能代码 ???render() { ???????return ( ???????//UI代码 ???????); ???}}export default MyApp;

依次类推,我们也可以把非UI的组件书写结构标准化,如下:

//Myfn.jslet Myfn = { ???http(params){ ???//代码 ???} ???showMessage(msg){ ???//代码 ???} ???... ???//其它代码}export default Myfn;

对比一下,发现两者有以下不同:

UI组件需要class语句
UI组件需要render函数
反之则不需要。

相同点:
react规定,组件名(也就是文件名)首字母必须大写。
为了便于代码管理和阅读,最好让组件名和组件内部导出的绑定名字统一。以Myfn.js为例,Myfn.js的文件名和其导出的Myfn对象名是一致的。大家一定要养成这样的书写习惯。


组件写法我们会了,那如何让组件组合使用呢?
以上面的例子说明,如果我想在MyApp.js里使用Myfn,可以这样使用:

//MyApp.jsimport React, { Component } from ‘react‘;import Myfn from ‘./Myfn‘; //注意这句,此处的Myfn.js的扩展名可以省去class MyApp extends Component { ???//其它的功能代码 ???showMsg(msg){ ???????Myfn.showMessage(msg); //注意这句 ???} ???render() { ???????//this.showMsg(‘hello world!‘)或 ???????//Myfn.showMessage(‘hello world!‘) ???????return ( ???????????//UI代码 ???????); ???}}export default MyApp;

是不是很简单?
记住一句话:非UI组件通常是导入到UI组件里使用的,非UI组件通常为UI组件渲染时提供逻辑处理。

原创教程之——reactjs 组件入门教程

原文地址:https://www.cnblogs.com/tinkbell/p/8707854.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved