usestate 是一個 react hook,它允許您通過返回包含兩個變量的數組來向組件添加狀態:state、setstate。當前狀態以及調用時成為 setter 函數的函數。它可用于跟蹤應用程序中需要跟蹤的數據或屬性,例如字符串、數字、布爾值、數組或對象。
示例:
const [state, setstate] = usestate();
簡單來說,狀態會在任何時候發生變化并且需要更新,因此“setstate”將更新狀態,隨著時間的推移觸發組件的重新渲染。
此外,usestate 可以保存任何類型的 javascript 值,包括對象。始終記住的一點是,您永遠不應該直接更改處于 react 狀態的對象。首先,您需要創建一個新副本或創建現有副本的副本,然后將 state 設置為新副本。例如:
// objects const [state, setstate] = usestate({name: 'marlo', age: 56}); const updatename = () => { setstate({...state, name: 'karlo'}); }; const updateage = () => { setstate({...state, age: 96}); }; --------------------------------------------------------------------------------- // arrays const [array, setarray] = usestate([1, 2, 3, 4, 5]); const additem = () => { setarray([...array, 6]); }; const removeitem = () => { setarray(array.slice(0, array.length - 1)); };
要在 react 組件中使用 usestate,首先需要從 react 導入它,通過兩種不同的方式在組件頁面頂部編寫以下代碼,兩種方式都可以完美工作,因此您可以選擇您的毒藥。
import react from 'react'; import {usestate} from 'react';
或者你可以寫成一行
import react, {usestate} from 'react';
react hook usestate 可以在組件的頂層或自定義鉤子內調用,但不能在循環或條件內調用。
const [initialstate, setinitialstate] = usestate();
initialstate 僅在初始渲染期間使用,在后續渲染中將被忽略。
initialstate 函數被傳遞給 setinitialstate 函數,它以之前的狀態作為參數,并返回一個 newstate。
此外,在我看來,對于在 react 中什么地方可以使用 hooks 和什么地方不可以使用 hooks 沒有特殊的規則。當然,您必須謹慎且有策略地保持代碼井井有條。
在我的一個項目中,構建一個 spa(單頁應用程序),有各種組件來實現我的目標。組織良好的秘訣是跟蹤您的組件。例如,您的 app.js 組件將根據需要更新的數據類型使用 {usestate}。
讓我們介紹 react 中的另一個強大的鉤子:{useeffect},并將其與 {usestate} 一起使用來解釋這些鉤子如何對數據執行操作。以下示例來自我在最近的項目中使用的 app.js 組件。我正在處理玩具的 db.json 文件數據,這將有助于兒童第一年的發展。這是我的端點 http://localhost:4000/toys 來幫助您了解 {usestate} 和 {useeffect} 如何在應用程序組件內部工作的過程。
第一:初始化狀態:
const [toys, settoys] = usestate([]);
- 這一行初始化了一個狀態變量toys,用一個空數組[]作為初始值。
- settoys 是一個用于更新玩具狀態的函數。
第二: 獲取組件掛載數據:
useEffect(() => { fetch("http://localhost:4000/toys") .then(response => response.json()) .then(data => setToys(data)); }, []);
- {useeffect} 鉤子用于在組件中執行副作用。
- {useeffect} 中的函數會在組件掛載時運行一次,因為依賴數組 ([]) 為空。
第三: 獲取玩具數據:
-
fetch("http://localhost:4000/toys")
- 此行向指定的 url 發出 get 請求以獲取玩具數據。
-
.then(響應=> response.json())
- 來自 fetch 請求的響應被轉換為 json 格式。
-
.then(toysdata => settoydata(toysdata));
- json 數據(toysdata)用于使用 settoys 函數更新玩具狀態。
要更深入地了解 {usestate, useeffect} 的工作原理,您可以訪問 react 官方網站。此外,另一個有用的來源是 w3schools 網站,這是我個人最喜歡的。它開門見山地提供了示例,您可以在自己的瀏覽器中嘗試。最后,如果您需要更多技術資源,mdn 網絡文檔將為您提供幫助。
以上就是React HooK= { 簡要解釋};的詳細內容,更多請關注愛掏網 - it200.com其它相關文章!