React 封裝自定義組件的操作方法
一、專欄介紹 ????
本專欄將引領(lǐng)您快速上手React,讓我們一起放棄放棄的念頭,開始學(xué)習(xí)之旅吧!我們將從搭建React項目開始,逐步深入講解最核心的hooks,以及React路由、請求、組件封裝以及UI(Ant Design)框架的使用。讓我們一起掌握React,開啟前端開發(fā)的全新篇章!
二、什么是自定義組件 ????
自定義組件是指根據(jù)應(yīng)用需求,自定義的組件。它們可以是有狀態(tài)的或無狀態(tài)的,可以接受props并返回JSX或null,并且可以包含生命周期方法、refs、context等等。 自定義組件在React應(yīng)用中非常常見,因為React的核心思想就是組件化。每一個React頁面都是由一個或多個組件構(gòu)成,組件是構(gòu)建React應(yīng)用程序的基石。它們可以封裝可重用的UI組件,使代碼更加模塊化和可維護(hù)。 自定義組件可以有很多用途。例如,它們可以創(chuàng)建可重用的UI組件,如按鈕、表單、布局等。同時,它們也可以用于封裝復(fù)雜的業(yè)務(wù)邏輯,將復(fù)雜的業(yè)務(wù)邏輯抽象為可重用的組件,提高代碼的可維護(hù)性和可重用性。此外,自定義組件還可以用于實現(xiàn)AOP(面向切面編程),將通用邏輯(如認(rèn)證、日志)封裝到單獨的組件中,避免在各個角落重復(fù)編寫代碼。 總之,自定義組件是React中非常重要的概念,它們可以幫助開發(fā)者更好地組織和維護(hù)代碼,提高開發(fā)效率和質(zhì)量。
三、組件需求 ????
根據(jù)需求,需要定義一個組件,該組件根據(jù)viewMode屬性的不同顯示不同的狀態(tài)。當(dāng)viewMode為edit時,顯示一個標(biāo)題和輸入框,表示編輯狀態(tài);當(dāng)viewMode為view時,顯示一個標(biāo)題和一個內(nèi)容,表示查看狀態(tài)。此外,該組件還需要集成原生的input輸入框,并具有自己的屬性。
四、編寫組件源碼 ????
新建文件src/components/CustomInput.tsx
自定義組件首字母一定要大寫并且使用駝峰命名方式
InputHTMLAttributes<HTMLInputElement>為input框原生的屬性。
import React, { InputHTMLAttributes } from 'react';
import './CustomInput.scss';
const CustomInput: React.FC<
InputHTMLAttributes<HTMLInputElement> & {
label: string | number; // 這里的意思label屬性可以是一個字符串也可以是一個數(shù)字。
viewMode?: 'view' | 'edit'; // 這里的意思是view屬性只能是view或者edit字符串
}
> = ({ label, viewMode = 'edit', ...props }) => {
// view = 'edit' 表示默認(rèn)值就是edit
if (viewMode === 'edit') {
return (
<>
<div className={'ts-custom-input edit'}>
<span>{label}:</span>
<input {...props} />
</div>
</>
);
}
return (
<>
<div className={'ts-custom-input view'}>
<span className={'title'}>{label}:</span>
<span className={'content'}>{props.defaultValue}</span>
</div>
</>
);
};
export default CustomInput;新建文件src/components/CustomInput.scss
.ts-custom-input {
width: 100%;
height: 26px;
line-height: 26px;
&.view {
.title {
color: black;
}
.content {
color: #696767;
}
}
}使用組件
import React from 'react';
import CustomInput from './components/CustomInput';
function App() {
return (
<div className="App">
<CustomInput
label="姓名"
placeholder="請輸入值"
viewMode={'edit'}
defaultValue={'我是默認(rèn)值'}
onChange={(e) => {
console.log('??????-----------------輸入值發(fā)生了變化,現(xiàn)在是:', e.target.value);
}}
/>
<CustomInput label="姓名" viewMode={'view'} defaultValue={'我是默認(rèn)值'} />
</div>
);
}
export default App;效果


五、總結(jié) ????
React中自定義組件非常重要、很有必要花時間好好的學(xué)學(xué)。
自定義組件可以將UI切分成一些獨立的、可復(fù)用的部件,這樣只需專注于構(gòu)建每一個單獨的部件,從而在多個項目中重用代碼。這提高了開發(fā)效率,降低了維護(hù)成本。
組件化開發(fā)降低了系統(tǒng)各個功能之間的耦合性,提高了功能內(nèi)部的聚合性。這使得代碼更容易理解和修改,降低了開發(fā)復(fù)雜度。
自定義組件遵循一定的命名和規(guī)范,使得代碼更加清晰和易于維護(hù)。當(dāng)需要修改或擴(kuò)展功能時,只需找到對應(yīng)的組件進(jìn)行修改,而不需要在整個項目中搜索和修改相關(guān)代碼。
自定義組件使得團(tuán)隊成員可以更容易地分工合作,每人負(fù)責(zé)一個或多個組件的開發(fā)和維護(hù)。這提高了團(tuán)隊的協(xié)作效率,降低了溝通成本。
自定義組件可以接受不同的屬性和參數(shù),根據(jù)需求進(jìn)行定制。這使得組件具有很高的靈活性,可以適應(yīng)各種場景和需求。
自定義組件可以獨立地進(jìn)行測試和調(diào)試,這使得問題定位和修復(fù)更加容易。同時,組件的獨立性也使得自動化測試更加容易實現(xiàn)。
總之,React中自定義組件的重要性在于它們提供了代碼重用、降低耦合性、提升可維護(hù)性、更好的團(tuán)隊協(xié)作、靈活性和易于測試和調(diào)試等好處,從而提高了開發(fā)效率和質(zhì)量。
到此這篇關(guān)于React 封裝自定義組件的文章就介紹到這了,更多相關(guān)React 封裝組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
react-native聊天室|RN版聊天App仿微信實例|RN仿微信界面
這篇文章主要介紹了react-native聊天室|RN版聊天App仿微信實例|RN仿微信界面,需要的朋友可以參考下2019-11-11
DOM 注入實踐之如何在 React 中優(yōu)雅地擴(kuò)展第三方組件
本文將介紹一種更優(yōu)雅的解決方案——DOM 注入 + React Portal,通過抽象的示例展示這種技術(shù)方案的應(yīng)用場景和實現(xiàn)方法,感興趣的朋友跟隨小編一起看看吧2026-03-03
React中獲取數(shù)據(jù)的3種方法及優(yōu)缺點
這篇文章主要介紹了React中獲取數(shù)據(jù)的3種方法及優(yōu)缺點,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-02-02

