首頁 > web前端 > js教程 > React OneLiners 提高編碼效率

React OneLiners 提高編碼效率

Susan Sarandon
發布: 2024-12-22 01:20:26
原創
485 人瀏覽過

React One-Liners to Enhance Your Coding Efficiency

React 是一個用於建立使用者介面的強大 JavaScript 函式庫。雖然其靈活性是其最大的優勢之一,但有時會導致程式碼冗長。幸運的是,有許多方法可以透過簡潔、高效的單行程式碼來簡化 React 中的常見模式。在本文中,我們將探索 30 個有用的 React 行話,它們將使您的程式碼更乾淨、更有效率。每個範例都附有簡短的解釋以突出其用法。

1. 條件渲染

根據 props 或狀態簡化條件 UI 渲染。

const Greeting = ({ isLoggedIn }) => isLoggedIn ? <h1>Welcome!</h1> : <h1>Please log in</h1>;
登入後複製
登入後複製

2. 預設道具

為 props 提供預設值以避免未定義的錯誤。

const Button = ({ label = "Click Me" }) => <button>{label}</button>;
登入後複製
登入後複製

3. 內聯樣式

使用 JavaScript 物件直接套用動態樣式。

const Box = ({ size }) => <div>



<h3>
  
  
  4. Functional Updates in State
</h3>

<p>Use functional updates to access the latest state.<br>
</p>

<pre class="brush:php;toolbar:false">const [count, setCount] = useState(0);
const increment = () => setCount(prev => prev + 1);
登入後複製
登入後複製

5. 事件處理

直接內聯處理使用者輸入事件。

const Input = () => <input onChange={e => console.log(e.target.value)} />;
登入後複製
登入後複製

6.傳播道具

輕鬆地將所有道具傳遞給組件。

const Button = props => <button {...props} />;
登入後複製
登入後複製

7. 動態類

根據 props 動態分配 CSS 類別。

const Alert = ({ type }) => <div className={`alert ${type}`}>Alert Message</div>;
登入後複製
登入後複製

8. 數組映射

映射數組以產生元素列表。

const List = ({ items }) => <ul>{items.map((item, index) => <li key={index}>{item}</li>)}</ul>;
登入後複製
登入後複製

9. 數組過濾

過濾數組並僅渲染匹配的項目。

const FilteredList = ({ items }) => <ul>{items.filter(item => item.active).map(item => <li key={item.id}>{item.name}</li>)}</ul>;
登入後複製
登入後複製

10. 可選鏈接

安全存取深層嵌套的物件屬性。

const UserProfile = ({ user }) => <p>{user?.name || "Guest"}</p>;
登入後複製
登入後複製

11. 短路評估

有條件地渲染元件或元素。

const ErrorMessage = ({ error }) => error && <p>{error.message}</p>;
登入後複製
登入後複製

12. 組件作為道具

將組件作為可重複使用包裝器的道具。

const Wrapper = ({ Component }) => <Component />;
登入後複製
登入後複製

13.具有依賴關係的UseEffect

在組件安裝期間僅執行一次效果。

useEffect(() => console.log("Mounted"), []);
登入後複製

14. 去抖動輸入

消除使用者輸入的反跳以提高效能。

const Input = ({ onChange }) => <input onChange={e => debounce(onChange(e.target.value), 300)} />;
登入後複製

15. 合併國家

將新的狀態更新合併到現有狀態。

const [state, setState] = useState({});
const updateState = updates => setState(prev => ({ ...prev, ...updates }));
登入後複製

16. 解構道具

使用解構的 props 來獲得更簡潔的程式碼。

const Greeting = ({ name }) => <h1>Hello, {name}</h1>;
登入後複製

17. 記憶回調

記憶函數以避免不必要的重新建立。

const handleClick = useCallback(() => console.log("Clicked"), []);
登入後複製

18. 定制鉤單襯

為可重複使用邏輯建立簡潔的自訂掛鉤。

const useToggle = initialValue => useState(initialValue).reduce((state, setState) => [state, () => setState(!state)]);
登入後複製

19. 內聯片段

將多個元素分組,無需增加額外的 DOM 節點。

const FragmentExample = () => <><p>First</p><p>Second</p></>;
登入後複製

20. 上下文消費者

使用消費者元件存取上下文值。

const Greeting = ({ isLoggedIn }) => isLoggedIn ? <h1>Welcome!</h1> : <h1>Please log in</h1>;
登入後複製
登入後複製

21.預設函數道具

提供預設函數作為 props 以防止執行階段錯誤。

const Button = ({ label = "Click Me" }) => <button>{label}</button>;
登入後複製
登入後複製

22. 防止事件違約

直接在事件處理程序中防止預設行為。

const Box = ({ size }) => <div>



<h3>
  
  
  4. Functional Updates in State
</h3>

<p>Use functional updates to access the latest state.<br>
</p>

<pre class="brush:php;toolbar:false">const [count, setCount] = useState(0);
const increment = () => setCount(prev => prev + 1);
登入後複製
登入後複製

23. 延遲載入組件

動態導入元件以獲得更好的效能。

const Input = () => <input onChange={e => console.log(e.target.value)} />;
登入後複製
登入後複製

24. 內聯誤差邊界

將子項包裝在後備 UI 中以防止錯誤。

const Button = props => <button {...props} />;
登入後複製
登入後複製

25. 渲染道具

對靈活的組件使用 render-prop 模式。

const Alert = ({ type }) => <div className={`alert ${type}`}>Alert Message</div>;
登入後複製
登入後複製

26. 條件屬性

根據邏輯有條件地套用屬性。

const List = ({ items }) => <ul>{items.map((item, index) => <li key={index}>{item}</li>)}</ul>;
登入後複製
登入後複製

27. 動態導入

根據條件動態載入模組。

const FilteredList = ({ items }) => <ul>{items.filter(item => item.active).map(item => <li key={item.id}>{item.name}</li>)}</ul>;
登入後複製
登入後複製

28. 受控組件

輕鬆將輸入值與狀態同步。

const UserProfile = ({ user }) => <p>{user?.name || "Guest"}</p>;
登入後複製
登入後複製

29. 用於渲染的數組Reduce

使用reduce將資料轉換為元素。

const ErrorMessage = ({ error }) => error && <p>{error.message}</p>;
登入後複製
登入後複製

30. 條件掛鉤

有條件地使用鉤子而不違反規則。

const Wrapper = ({ Component }) => <Component />;
登入後複製
登入後複製

這些俏皮話展示了 React 的優雅和多功能性。透過利用這些簡潔的模式,您可以編寫更清晰、更易於維護的程式碼,從而提高工作效率。嘗試將它們合併到您的專案中,看看有何不同!

以上是React OneLiners 提高編碼效率的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板