網站首頁 編程語言 正文
模塊化
模塊
理解:向外提供特定功能的js程序,一般就是一個js文件。
為什么:要拆成模塊,隨著業(yè)務邏輯增加,代碼越來越多且復雜。
作用:復用js,簡化js的編寫,提高js運行效率。
模塊化
當應用的js都以模塊來編寫,這個應用就是一個模塊化的應用
組件化
組件
理解:用來實現(xiàn)局部功能效果的代碼和資源的集合(html/css/js/img等等)
為什么:要用組件,一個界面的功能復雜
作用:復用編碼,簡化項目編碼,提高運行效率
組件化
當應用是以多組件的方式實現(xiàn),這個應用就是組件化的應用
函數(shù)式組件
實質:一個 React 應用就是構建在 React 組件之上的。
函數(shù)組件:該函數(shù)是一個有效的 React 組件,因為它接收唯一帶有數(shù)據的 “?props?”(代表屬性)對象與并返回一個 React 元素。這類組件被稱為“函數(shù)組件”,因為它本質上就是 JavaScript 函數(shù)。
創(chuàng)建函數(shù)組件
function HelloPerson(){
return <h1>你好,我是函數(shù)式組件!</h1>;
}
ReactDOM.render(<HelloPerson/>,document.getElementById('root'));
說明:解析組件標簽HelloPerson,發(fā)現(xiàn)組件是函數(shù)定義的,調用該函數(shù),將返回的虛擬DOM,轉為真實的DOM,隨后呈現(xiàn)在頁面上。
Props參數(shù)傳遞(重點)
function HelloPerson(person){
console.log(this);//此處undefined babel編譯后采取嚴格模式
return (
<ul>
<li>姓名:{person.name}</li>
<li>年齡:{person.age}</li>
</ul>
)
}
ReactDOM.render(<HelloPerson name='張三' age={18}/>,document.getElementById('root'));
復合函數(shù)組件
function GetName(props){
return <li>姓名:{props.name}</li>
}
function GetAge(props){
return <li>年齡:{props.age}</li>
}
function HelloPerson(person){
return (
<ul>
<GetName name={person.name}/>
<GetAge age={person.age}/>
</ul>
)
}
ReactDOM.render(<HelloPerson name='張三' age={18}/>,document.getElementById('root'));
類式組件
ES6 的 class 來定義組件,通過繼承React.Component。解析流程如下:
React解析組件標簽,找到了MyComponent組件。
發(fā)現(xiàn)組件是使用類定義的,隨后new出來該類的實例,并通過該實例調用到原型上的render方法。
將render返回的虛擬DOM轉為真實DOM,隨后呈現(xiàn)在頁面中。
創(chuàng)建實例
//創(chuàng)建類組件 1:繼承react中的Component類 2:需要render
class Person extends React.Component{
render(){
return (
<h1>你好,我是類式組件!</h1>
)
}
}
ReactDOM.render(<Person/>,document.getElementById("root"));
用戶自定義組件
const element = <Person/>
ReactDOM.render(element,document.getElementById("root"));
原文鏈接:https://yzq-ty.blog.csdn.net/article/details/126685937
相關推薦
- 2023-06-20 Jupyter?Notebook中%time和%timeit的使用詳解_python
- 2021-12-18 死鎖的處理基本策略和常用方法
- 2022-06-25 CentOS?8?安裝調試KVM的詳細步驟_Kvm
- 2023-03-27 詳解C++11中的類型推斷_C 語言
- 2022-02-15 獲取字符串大括號里面的值 ,并判斷字符串是否符合要求
- 2022-04-15 基于MFC實現(xiàn)自定義復選框效果_C 語言
- 2022-09-20 Android畫圖實現(xiàn)MPAndroidchart折線圖示例詳解_Android
- 2022-06-16 golang默認Logger日志庫在項目中使用Zap日志庫_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支