React 筆記 jsx

嚴格約定:React 組件必須以大寫字母開頭,而 HTML 標簽則必須是小寫字母。

React

JSX

JSX 是由 React 推廣的 JavaScript 語法擴展。
用于表達組件的 特殊語法的 js 函數

  • 要求標簽必須閉合;
  • 返回的組件必須包裹在一個父標簽內;
    <>...</> 類似 vue 的 <template>

通過 () 包裹 d多行 html 標簽;通過 {} 插入 js 表達式值
注意: 屬性=xxx 時,要去掉“”,否則無法識別{} 插值

html-to-jsx

className htmlFor 自定義組件特殊屬性

html 內置標簽通過 is 屬性 標記為 自定義組件

style 對象方式 指定

style={{width: user.imageSize,height: user.imageSize
}}

事件監聽 on前綴

事件傳播

在 React 中所有事件都會傳播,除了 onScroll,它僅適用于你附加到的 JSX 標簽。

事件捕獲

當子組件阻止事件傳播后,可以通過 on事件Capture 來強制捕獲事件
捕獲會被優先處理

條件循環生成

得益于 jsx 語法,條件和循環都可以用原生js來實現;
被循環的(列表)元素 應該設置 key 屬性,用于在其兄弟節點中唯一標識該元素。

響應式

useState

const [狀態名, 更新狀態方法名] = useState(0)

目前看來響應式只能在組件總使用

useRef
不會觸發重新渲染

Hook useXxxx

hook 要求必須在組件中使用
只能在組件或自定義 Hook 的最頂層調用

內置的hook

useState 響應式

const [狀態名, 更新狀態方法名] = useState(初始值)

useContext

類似 Vue provide/inject

useEffect

將一個組件與外部系統同步 類似vue的watch

useEffect(setup, dependencies?)

useRef

自定義hook

通信

prop

通過定義 組件函數的參數 來設定 props

雙向數據流

react 對表單元素做了特殊處理,使得綁定的prop后,需要綁定onChange等會改變prop值的事件
對應vue @update:propName
在這里插入圖片描述

組件

應嚴格按照 純函數 編寫

不要在創建時,修改外部的變量

更新屏幕、啟動動畫、更改數據等,它們被稱為 副作用
它們是 “額外” 發生的事情,與渲染過程無關。副作用無需按照純函數,如事件處理函數。
useEffect 方法在渲染結束后執行。(nextTick)

ref DOM

inputRef.current.xxx

<StrictMode>

包裹 <APP /> 用來 啟用額外的開發行為和警告,使得在開發過程中能夠及早發現組件中的常見錯誤。

createContext

創建一個 context 對象.Provider 傳給上下文動態內容

<xxxContext.Provider value={var}>

下層通過 useContext(context對象) 獲取上下文
https://react.docschina.org/learn


react-dom

React 只包含了 Web 和 Mobile 通用的核心部分,負責 Dom 操作的分到 ReactDOM 中,負責 Mobile 的包含在 ReactNative 中

小駝峰編寫propName

虛擬dom:
render (React18后 將被 createRoot 替代) 會將一段 JSX(“React 節點”)渲染到瀏覽器 DOM 容器節點中。但會先清空DOM 中的內容。

render(reactNode, domNode, callback?)

createPortal 設定插入位置


Redux

全局狀態管理
createStore(function reducer(state, action){})
combineReducers 合并多個 reducer

React Redux

<StrictMode><Provider store={store}><APP /></Provider >
</StrictMode>

<Provider> 組件使得 Redux store 能夠在應用的其他地方使用

React Redux 在內部實現了許多性能優化,以便你編寫的組件僅在實際需要時重新渲染。

  1. 創建一個 Redux store
  2. 訂閱更新
  3. 訂閱回調內部:
    i. 獲取當前的 store state
    ii. 提取這部分 UI 需要的數據
    iii. 使用數據更新 UI
  4. 如有必要,用初始的 state 去渲染 UI
  5. 通過 dispatching Redux actions 去響應 UI 層的交互

connect方法,用于從 UI 組件生成容器組件。

react-router-dom

官方向導

<StrictMode><BrowserRouter><APP /></BrowserRouter>
</StrictMode>
const routes = [{path: '*',element: <NotFound />,}
]

useRoutes 身材組件注冊

一般編寫

<Routes><Route path="/" element={<NotFound />} /></Routes>

useLoaderData 加載路由變量

react-scripts

包括創建 React 應用程序使用的腳本和配置。
類似 Vue-Cli

umi-requset 類似 axios


https://react.docschina.org/learn/add-react-to-an-existing-project

https://react.docschina.org/learn/start-a-new-react-project

https://reactnative.dev/


@ahooksjs/use-request

useRequest 是一個強大的異步數據管理的 Hooks,React 項目中的網絡請求場景使用 useRequest 就夠了。
https://ahooks.js.org/zh-CN/hooks/use-request/basic

const { data, error, loading } = useRequest(()=>{// 在組件初始化時,會自動執行該異步函數···
}, config)

返回內容:

  • data
  • error
  • loading
  • run, runAsync // 僅在手動時有效
  • refresh, refreshAsync 重復上一次請求(參數一致)
  • mutate(value) 立即更新data
  • cancel 忽略當前 promise 返回的數據和錯誤
  • params 當前 service 的參數數組

config 配置項

manual 手動執行

const { loading, run, runAsync } = useRequest(service, {manual: true
})

defaultParams 默認參數組

生命周期 鉤子:

  • onBefore:請求之前觸發
  • onSuccess:請求成功觸發
  • onError:請求失敗觸發
  • onFinally:請求完成觸發

refreshDeps: [響應式狀態, ···] 當它的值變化后,會重新觸發請求

formatResult

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/208027.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208027.shtml
英文地址,請注明出處:http://en.pswp.cn/news/208027.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

鴻蒙4.0開發筆記之ArkTS語法基礎之數據傳遞與共享詳細講解(十八)

文章目錄 一、路由數據傳遞&#xff08;router&#xff09;1、路由數據傳遞定義2、路由數據傳遞使用方法3、數據傳遞兩個頁面的效果 二、頁面間數據共享&#xff08;EntryAbility&#xff09;1、定義2、實現案例3、避坑點 三、數據傳遞練習 一、路由數據傳遞&#xff08;router…

PaaS(平臺即服務)——云計算服務模型(特點,應用場景,優點和缺點,示例)

PaaS&#xff08;平臺即服務&#xff09;是云計算的一種服務模型&#xff0c;它提供了一個平臺&#xff0c;允許客戶開發、運行和管理應用程序&#xff0c;而無需建立和維護通常與這些過程相關的復雜基礎設施。PaaS 是作為服務交付的一種方式&#xff0c;它提供了一套工具和服務…

網卡學習資料整理

GMAC網卡相關介紹與分析 https://www.cnblogs.com/forwards/p/17101438.html https://www.eefocus.com/article/1635234.html Linux Phy 驅動解析_linux phy驅動-CSDN博客 GMAC接口五篇 https://blog.csdn.net/dkmknjk/category_11837422.html 以太網掃盲&#xff08;一&am…

麒麟V10服務器安裝Apache+PHP

安裝PHP yum install php yum install php-curl php-gd php-json php-mbstring php-exif php-mysqlnd php-pgsql php-pdo php-xml 配置文件 /etc/php.ini 修改參數 date.timezone Asia/Shanghai max_execution_time 60 memory_limit 1280M post_max_size 200M file_upload…

分布式和微服務區別

1.分布式 微服務和分布式的區別 1.將一個大的系統劃分為多個業務模塊&#xff0c;業務模塊分別部署到不同的機器上&#xff0c;各個業務模塊之間通過接口進行數據交互。區別分布式的方式是根據不同機器不同業務。 2.分布式是否屬于微服務&#xff1f; 答案是肯定的。微服務的意…

動手制作個人電腦對話機器人transformers+DialoGPT

簡介&#xff1a;DialoGPT是一個對話模型&#xff0c;由微軟基于GPT-2訓練。由于DialoGPT在對話數據上進行了預訓練&#xff0c;所以它比原始的GPT-2更擅長生成類似對話的文本。DialoGPT的主要目標是生成自然且連貫的對話&#xff0c;而不是在所有情況下都提供事實上的正確答案…

基于Spring、SpringMVC、MyBatis開發的游樂場管理系統

文章目錄 項目介紹主要功能截圖:部分代碼展示設計總結項目獲取方式?? 作者主頁:超級無敵暴龍戰士塔塔開 ?? 簡介:Java領域優質創作者??、 簡歷模板、學習資料、面試題庫【關注我,都給你】 ??文末獲取源碼聯系?? 項目介紹 基于Spring、SpringMVC、MyBatis開發的游…

ca單點登錄

最近搞得單點登錄碰到了很多問題&#xff0c;具體的問題有如下幾個&#xff1a; ①如何獲取usbkey的值 ②要實現的單點登錄的方案 ③如何獲取多個key的值&#xff0c;并進行選擇登錄 ④ie跳谷歌訪問業務界面 注&#xff1a;最后將實現代碼附上&#xff0c;希望對大家有所幫助 1…

Numpy數組的運算(第7講)

Numpy數組的運算(第7講) ??????? ??博主 侯小啾 感謝您的支持與信賴。?? ????????????????????????????????????????????????????????????????????????????????????????…

進制 + 原碼,反碼,補碼

進制轉換 整數部分 小數部分 原碼 反碼 補碼 原碼轉補碼&#xff1a; 左邊和右邊第一個1不變&#xff0c;中間取反。-0 除外。 計算機系統中數值一律用補碼來存儲的原因 其他 術語 進制表 進制數的表示 詳細教程可轉 愛編程的大丙

數學建模-數據新動能驅動中國經濟增長的統計研究-基于數字產業化和產業數字化的經濟貢獻測度

數據新動能驅動中國經濟增長的統計研究-基于數字產業化和產業數字化的經濟貢獻測度 整體求解過程概述(摘要) 伴隨著數據要素化進程的不斷加深&#xff0c;對于數據如何作用于經濟發展&#xff0c;數據與其他要素結合產生的動能應該如何測度的研究愈發重要。本文將數據新動能分…

sql 條件統計,count+if+sum

1&#xff0c;前提 看同事寫的sql語句時&#xff0c;覺得他寫的這個countsumif的sql還挺新鮮&#xff0c; 學習記錄下&#xff0c;感覺這個挺適合用來對歷史數據做條件統計 2&#xff0c;count使用結果 select count(0);//1select count(1);//1select count(null);//0select…

機器人剛性碰撞任務的阻抗控制性能

問題描述 對于機器人剛性碰撞任務&#xff0c;阻抗控制可以有效地提高機器人的適應性和穩定性。 在剛性碰撞任務中&#xff0c;機器人在接觸外部物體時需要快速適應并調整自身的運動軌跡和速度&#xff0c;以實現精確的操控和穩定的交互。阻抗控制可以通過調整機器人的阻抗參…

【Flink系列五】Checkpoint及Barrier原理

本章內容 一致性檢查點從檢查點恢復狀態檢查點實現算法-barrier保存點Savepoint狀態后端&#xff08;state backend&#xff09; 本文先設置一個前提&#xff0c;流處理的數據都是可回放的&#xff08;可以理解成消費的kafka的數據&#xff09; 一致性檢查點&#xff08;che…

深度學習之注意力機制

注意力機制與外部記憶 注意力機制與記憶增強網絡是相輔相成的&#xff0c;神經網絡去從內存中或者外部記憶中選出與當前輸入相關的內容時需要注意力機制&#xff0c;而在注意力機制的很多應用場景中&#xff0c;我們的外部信息也可以看作是一個外部的記憶 這是一個閱讀理解任務…

Nodejs安裝使用,nvm對Nodejs和npm版本控制

Nodejs 安裝 使用: npm 是Nodejs的內置 包管理工具 下載長期支持版本Node.js 中文網Node.js 是一個基于 Chrome V8 引擎的 JavaScript 運行環境。Node.js 使用了一個事件驅動、非阻塞式 I/O 的模型&#xff0c;使其輕量又高效。Node.js 的包管理器 npm&#xff0c;是全…

Flink之JDBCSink連接MySQL

輸出到MySQL 添加依賴 <dependency><groupId>org.apache.flink</groupId><artifactId>flink-connector-jdbc</artifactId><version>3.1.0-1.17</version> </dependency> <dependency><groupId>com.mysql</gr…

在pytorch中自定義dataset讀取數據

這篇是我對嗶哩嗶哩up主 霹靂吧啦Wz 的視頻的文字版學習筆記 感謝他對知識的分享 有關我們數據讀取預訓練 以及如何將它打包成一個一個batch輸入我們的網絡的 首先我們來看一下之前我們在講resnet網絡時所使用的源碼 我們去使用了官方實現的image folder去讀取我們的圖像數據 然…

xilinx的XVC協議

文章目錄 概述JTAG工作方式XVC協議 其他Debug Bridge IP 概述 JTAG工作方式 XVC協議 其他 Debug Bridge IP

Python正則表達式指南

正則表達式指南 摘要 本文是關于在 Python 中通過 re 模塊使用正則表達式的入門教程。它提供了比“標準庫參考”的相關章節更平易的介紹。 引言 正則表達式&#xff08;Regular expressions&#xff0c;也叫 REs、 regexs 或 regex patterns&#xff09;&#xff0c;本質上…