在我們的編碼訓練營中,當我們快速跑完 React 並在實驗室中大汗淋漓時,我們的講師會說:“如果你仔細觀察,React 很像 Java。”
起初,這只是一個朗朗上口且有趣的短語。 ?然而,最近,我在從事個人 Google 地圖計算器專案時重新審視了 React。深入研究幾天后,我開始發現其中一些相似之處。
讓我們深入研究這些聯繫,看看 Java 的基本概念如何闡明我們對 React 的理解。 ?
目錄
App.jsx 作為 Java 主類別 (psvm)
使用 Hooks 作為 Java Getter 和 Setter 進行狀態管理
作為 Java 類別的容器
元件作為 Java 方法
React 在元件中的回傳
Props 作為 Java 方法參數
作為傳回值的 Java 方法的回呼函數
1. App.jsx作為Java主類別(psvm)
Java:
在Java中,主類別作為程式的入口點,它啟動程式的執行。
例如,您可以實例化不同類別的物件並呼叫它們各自的方法:
反應:
類似地,在 React 應用程式中,App.jsx 檔案透過編排主應用程式流程來發揮類似的作用。
就像Java中的main方法可以呼叫多個函數一樣,App.jsx負責根據應用程式的路由和目前狀態渲染所有元件。
在上面來自 App.jsx 的 React 範例中,return 語句中渲染的元件反映了 Java 中呼叫方法或初始化物件的過程。
在這種情況下,容器
2. 使用 Hooks 作為 Java Getters 和 Setters 進行狀態管理
Java:
在 Java 中,您可以使用變數和公用 getter/setter 方法來管理屬性,以取得和設定屬性的屬性,例如使用者的使用者名稱。
反應:
React 的 useState 掛鉤處理應用程式狀態的方式類似於 Java 使用 getter 和 setter 方法來管理物件屬性。
React 中的 useState 鉤子可讓您宣告可以隨時間變化的狀態變量,就像 Java 中類別中的實例變數一樣。
在上面的例子中:
- setUserName 用作 setter 方法,允許更新使用者名稱。雖然 useState("") 意味著使用者名稱被初始化為空字串,但 setUserName 會更新該值。
下面我們有一個函數handleInputChange,它檢測網頁表單中的變更以更新使用者資訊並將使用者名稱的值更新為使用者輸入的內容。
- 您可以將存取使用者名稱視為 getter。
每當您在元件中引用使用者名稱時,您實際上都是在使用 getter 來存取其值。例如,我的網頁可以透過以下方式呈現使用者名稱:
3. 容器作為 Java 類
Java:
在 Java 中,類別將相關的任務和資料組合在一起。它們幫助管理資訊在應用程式中的流動方式。
在此範例中,Calculator 類別處理計算並儲存結果。
反應:
同樣,在 React 中,容器透過將應用程式的資料連接到元件而發揮關鍵作用。它們處理從 API 呼叫獲取資料和管理應用程式狀態等事務。
在此範例中,計算器容器管理輸入值和結果的狀態,
4. 元件作為 Java 方法
Java:
Java 中的方法執行特定操作,例如處理使用者輸入。可以根據需要呼叫這些方法,以促進應用程式中的各種功能。
反應:
就像 Java 方法是小而集中的任務一樣,React 元件也有類似的用途,充當使用者介面的基本構建塊。
每個元件都是針對特定功能而設計的,並且可以在整個應用程式中重複使用。
下面的 ManualFilter 元件僅專注於使用者的過濾選項。它提供了允許使用者選擇特定類別的複選框。
然後可以在 UserForm 容器頁面中呼叫該元件。
5. React 在元件中的回歸
Java:
在 Java 中,方法可能會傳回一個值,程式的另一部分將使用該值來產生輸出。
例如,renderOutput 方法傳回一個包含使用者目標的字串,然後可以將其顯示在程式中的其他位置。
反應:
React 元件中的 return 語句對於渲染使用者介面至關重要。在 React 中,從元件傳回的內容決定了使用者在螢幕上看到的內容。
這與前面提到的類似,Java 中的方法傳回用於在程式的另一部分中處理或顯示的資料。
在此範例中,UserGoal 元件傳回顯示使用者目標的段落元素。
6. Props 作為 Java 方法參數
Java:
您可以將參數傳遞給 Java 方法,其中參數可以影響呼叫物件的狀態或行為。
例如,考慮一個將訊息作為參數的簡單 Java 方法。它收到的訊息將影響控制台顯示的內容。
反應:
在React中,元件可以接收props,類似Java方法中的參數。 React 元件使用 props 來決定其內容和功能。
屬性控制元件的行為方式以及它們顯示的資料。
假設我們有一個名為 WelcomePage 的父元件,它將向 MessageDisplay 子元件傳遞訊息。
換句話說,將 MessageDisplay 想像為 WelcomePage 登陸頁面上顯示訊息的部分。
我們可以在父元件中定義一則訊息並將其作為 prop 傳遞給 MessageDisplay 元件:
MessageDisplay 元件將接收此道具並渲染它:
7. 回呼函數作為傳回值的 Java 方法
Java:
在 Java 中,類別中通常有方法來執行特定操作並將值傳回給呼叫者。例如,您可能有一個名為 Calculator 的類,其中包含計算兩個數字之間差異的方法:
^在另一個類別中,您建立 Calculator 類別的實例並呼叫該方法。
反應:
React 遵循類似的概念,但它關注的是元件之間的關係。
當您的父元件包含子元件時,回呼函數有助於促進它們之間的通訊。 (請記住:父級是容納其他元件的主容器 - 類似於我們之前的父級「登陸頁面」範例以及訊息框的子元件)
例如,假設您有一個 ChildComponent,需要將一些計算資料傳回其父元件。
下面我們將handleCalculationResult函數作為prop從父級傳遞給子級。
此函數的作用類似回呼:
您可以在下面看到 onCalculate 是如何在 ChildComponent 中從父元件接收到的回調函數。
當點擊ChildComponent中的按鈕時,它會執行計算並使用onCalculate將結果傳回父級。這模仿了 Java 方法如何將值傳回給呼叫者。
透過這種方式,父級管理整個應用程式狀態和行為,而子級則專注於特定操作(在本例中為計算)。
以上是透過java鏡頭看react的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了使用咖啡因和Guava緩存在Java中實施多層緩存以提高應用程序性能。它涵蓋設置,集成和績效優勢,以及配置和驅逐政策管理最佳PRA

本文使用lambda表達式,流API,方法參考和可選探索將功能編程集成到Java中。 它突出顯示了通過簡潔性和不變性改善代碼可讀性和可維護性等好處

Java的類上載涉及使用帶有引導,擴展程序和應用程序類負載器的分層系統加載,鏈接和初始化類。父代授權模型確保首先加載核心類別,從而影響自定義類LOA

本文討論了使用JPA進行對象相關映射,並具有高級功能,例如緩存和懶惰加載。它涵蓋了設置,實體映射和優化性能的最佳實踐,同時突出潛在的陷阱。[159個字符]

本文討論了使用Maven和Gradle進行Java項目管理,構建自動化和依賴性解決方案,以比較其方法和優化策略。

本文使用選擇器和頻道使用單個線程有效地處理多個連接的Java的NIO API,用於非阻滯I/O。 它詳細介紹了過程,好處(可伸縮性,性能)和潛在的陷阱(複雜性,

本文使用Maven和Gradle之類的工具討論了具有適當的版本控制和依賴關係管理的自定義Java庫(JAR文件)的創建和使用。

本文詳細介紹了用於網絡通信的Java的套接字API,涵蓋了客戶服務器設置,數據處理和關鍵考慮因素,例如資源管理,錯誤處理和安全性。 它還探索了性能優化技術,我


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

WebStorm Mac版
好用的JavaScript開發工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

Atom編輯器mac版下載
最受歡迎的的開源編輯器