React-组件开篇
组件化开发
- 组件化开发其实就是分而治之的思想
- 我们可以将一个完整的界面拆分成多个小的界面, 每个小的界面就是一个组件
- 每个组件管理自己的状态(数据)和业务逻辑
- 这样做的既可以提高每个组件的复用性, 又可能降低每个组件的开发难度
定义组件
- 通过构造函数定义(函数组件, 无状态组件, 展示型组件)
- 通过类定义(类组件, 有状态组件, 逻辑组件)
- ... ...
编写组件
在编写组件标题标题中的内容主要是介绍如何定义组件和使用组件的一个过程,还有就是介绍一下组件化开发的过程,和类组件与函数组件的相互结合的使用
新建 index.js 或者修改 create-react-app 创建好的模板当中的这个文件有就修改没有就新增内容如下:
import ReactDom from 'react-dom';
import React from "react";
import App from './App';
ReactDom.render(<App/>, document.getElementById('root'));
紧接着 App.js 同理如上:
import React from 'react';
import './App.css';
class App extends React.Component {
render() {
return (
<div>
<div className={'header'}>头部</div>
<div className={'main'}>中间</div>
<div className={'footer'}>底部</div>
</div>
)
}
}
export default App;
App.css:
.header {
background: red;
}
.main {
background: green;
}
.footer {
background: blue;
}
运行效果如下:
如上定义的是一个类组件,如果这个时候我们想将当中的中部头部底部个个部分的内容都抽离成为一个小的组件那么该如何进行编写呢,那么就来看看这一块的用法吧,关于头部中部底部的组件博主使用的是函数组件来进行定义,这样就可以顺便的看到类组件与函数组件的结合使用的情况:
Header.js:
import React from 'react';
import './Header.css'
function Header() {
return (
<div className={'header'}>我是头部</div>
)
}
export default Header;
Header.css:
.header {
background: red;
}
Main.js:
import React from 'react';
import './Main.css'
function Main() {
return (
<div className={'main'}>我是中间</div>
)
}
export default Main;
Main.css:
.main {
background: green;
}
Footer.js:
import React from 'react';
import './Footer.css'
function Footer() {
return (
<div className={'footer'}>我是底部</div>
)
}
export default Footer;
Footer.css:
.footer {
background: blue;
}
然后就是 App.js 类组件当中进行使用的代码了:
import React from 'react';
import './App.css';
import Footer from "./components/Footer";
import Main from "./components/Main";
import Header from "./components/Header";
class App extends React.Component {
render() {
return (
<div>
<Header/>
<Main/>
<Footer/>
</div>
)
}
}
export default App;
使用的方式其实和博主之前文章当中介绍的使用是一样的,这里使用这样的方式定义和使用主要是说明一点,React 是支持类组件与函数式组件的混用的,好啦,本文到此结束。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具