網站首頁 編程語言 正文
模塊化
模塊
理解:向外提供特定功能的js程序,一般就是一個js文件。
為什么:要拆成模塊,隨著業務邏輯增加,代碼越來越多且復雜。
作用:復用js,簡化js的編寫,提高js運行效率。
模塊化
當應用的js都以模塊來編寫,這個應用就是一個模塊化的應用
組件化
組件
理解:用來實現局部功能效果的代碼和資源的集合(html/css/js/img等等)
為什么:要用組件,一個界面的功能復雜
作用:復用編碼,簡化項目編碼,提高運行效率
組件化
當應用是以多組件的方式實現,這個應用就是組件化的應用
函數式組件
實質:一個 React 應用就是構建在 React 組件之上的。
函數組件:該函數是一個有效的 React 組件,因為它接收唯一帶有數據的 “?props?”(代表屬性)對象與并返回一個 React 元素。這類組件被稱為“函數組件”,因為它本質上就是 JavaScript 函數。
創建函數組件
function HelloPerson(){
return <h1>你好,我是函數式組件!</h1>;
}
ReactDOM.render(<HelloPerson/>,document.getElementById('root'));
說明:解析組件標簽HelloPerson,發現組件是函數定義的,調用該函數,將返回的虛擬DOM,轉為真實的DOM,隨后呈現在頁面上。
Props參數傳遞(重點)
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'));
復合函數組件
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組件。
發現組件是使用類定義的,隨后new出來該類的實例,并通過該實例調用到原型上的render方法。
將render返回的虛擬DOM轉為真實DOM,隨后呈現在頁面中。
創建實例
//創建類組件 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
相關推薦
- 2022-04-11 springboot上傳文件到Nginx代理的FTP文件服務器
- 2022-12-05 詳解Go語言中切片的長度與容量的區別_Golang
- 2022-07-02 使用numpy.mean()?計算矩陣均值方式_python
- 2022-07-28 詳解Python中4種超參自動優化算法的實現_python
- 2022-11-16 Docker如何安全地停止和刪除容器_docker
- 2022-06-24 Edge瀏覽器開發者工具代碼修改同步到Vscode中_網頁編輯器
- 2022-07-10 初中級前端程序員必用且夠用的git命令同時推送到github/gitee及三種常用場景
- 2022-06-01 Androidstudio調用攝像頭拍照并保存照片_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支