React中useContext的基本使用和原理解析
React 中 useContext 的使用方法 在 React 中,useContext 是一個內置的 Hook,用於在函數組件中輕鬆訪問 Context(全局公共狀態),避免了手動逐層傳遞 props 的複雜性。它依賴於 Context API,通過 Provider 提供數據,後代組件通過 useContext 消費數據。以下是詳細的使用方法和步驟,基於 React 官方指南和實踐經驗。 1
昵称 老李説技術
贡献者88
粉丝0
React 中 useContext 的使用方法 在 React 中,useContext 是一個內置的 Hook,用於在函數組件中輕鬆訪問 Context(全局公共狀態),避免了手動逐層傳遞 props 的複雜性。它依賴於 Context API,通過 Provider 提供數據,後代組件通過 useContext 消費數據。以下是詳細的使用方法和步驟,基於 React 官方指南和實踐經驗。 1
昵称 老李説技術
鼠標移入顯示滾動條,移出隱藏 css滾動條一般是會佔位的 .container { overflow: hidden auto; ::-webkit-scrollbar { width: 0px; /* 控制滾動條整體寬度 */ } :hover { ::-webkit-scrollbar { width: 6px; /* 控制滾動條
昵称 兔子先森
貼幾個可在線訪問的圖片數據,圖片數據最好包含id、url、loading、success的狀態 分別對應: id === key url === url loading === 上傳中 success === 上傳成功的狀態 const imgList = ref([ { id:1, url: 'https://fastly.jsdelivr.net/npm/@van
昵称 兔子先森
對於一個React的開發者來説不知道你有沒有想過為什麼React追求數據不可變這個範式; 一個月前我想過一個問題如果我在使用useState這個hooks的時候傳入的是一個改變後的引用類型對象會發生什麼? 例如: import {useState} from "react" function App() { const [list,setList] = useState([0,1,2])
昵称 龍騎士尹道長
前言 echarts-for-react在對echarts進行輕量級封裝的基礎上,額外提供圖表尺寸自適應容器尺寸的這小而實用的功能,而這功能的背後就是本文想介紹的size-sensor了。 源碼介紹 size-sensor源碼十分精簡,主要是對原生APIResizeObserver方案和object元素方案進行檢測和API統一化而已。 代碼首先會檢測當前運行時是否支持原生APIResizeObse
昵称 肥仔John
所有源代碼、文檔和圖片都在 github 的倉庫裏,點擊進入倉庫 相關閲讀 React服務端渲染之路01——項目基礎架構搭建 React服務端渲染之路02——最簡單的服務端渲染 React服務端渲染之路03——路由 React服務端渲染之路04——redux-01 React服務端渲染之路05——redux-02 React服務端渲染之路06——優化 React服務端渲染之路07—
昵称 karuru
所有源代碼、文檔和圖片都在 github 的倉庫裏,點擊進入倉庫 相關閲讀 React服務端渲染之路01——項目基礎架構搭建 React服務端渲染之路02——最簡單的服務端渲染 React服務端渲染之路03——路由 React服務端渲染之路04——redux-01 React服務端渲染之路05——redux-02 React服務端渲染之路06——優化 React服務端渲染之路07—
昵称 karuru
所有源代碼、文檔和圖片都在 github 的倉庫裏,點擊進入倉庫 相關閲讀 React服務端渲染之路01——項目基礎架構搭建 React服務端渲染之路02——最簡單的服務端渲染 React服務端渲染之路03——路由 React服務端渲染之路04——redux-01 React服務端渲染之路05——redux-02 React服務端渲染之路06——優化 React服務端渲染之路07—
昵称 karuru
react-router-dom源碼分析 參考: https://juejin.im/post/5ac8c1...
昵称 浪遏飛舟
react-router-config主要用來幫助我們進行集中式路由的配置,在不使用react-router-config之前,我們的路由使用react-router-dom庫來進行配置,類似如下代碼: import React from 'react'; import { BrowserRouter as Router, Switch, Route, } from "react-ro
昵称 浪遏飛舟
react-router簡介 react-router包含3個庫,react-router、react-router-dom和react-router-native。 react-router提供最基本的路路由功能,實際使⽤的時候我們不會直接安裝react-router,⽽是根據應⽤運行的環境選擇安裝 react-router-dom(在瀏覽器器中使⽤)或react-router-nativ
昵称 哦哈哈
前言 react-router4 不再推薦將所有路由規則放在同一個地方集中式路由,子路由應該由父組件動態配置,組件在哪裏匹配就在哪裏渲染,更加靈活 引入必要的依賴 import React from 'react' import { Router, Route, IndexRoute, hashHistory } from 'react-router' 接下來創建一個component函數 目的就
昵称 MangoGoing
前言 老闆:搞個管理系統,我明天就要。 前端:沒空,誰愛做誰做!(小聲bb) 老闆:(突然抬頭)你説什麼? 前端:好的老闆 用後端的話來説,一個管理系統而已 要不是人手不夠,後端也能做。 看吧,前端就是這麼人微言輕~ 該乾的活還是得幹。 起步 # 使用ant design pro npm i @ant-design/pro-cli -g pro create myapp
昵称 潘潘潘呀
背景 公司中有多個項目需要同時開發 PC 端和 H5 端,大部分地方邏輯和交互比較類似,主要是樣式上有些區別。為了更好地複用代碼、提高開發效率,經過一段時間的實踐後,我們總結出這套 React Hook 和 SCSS 結合、px 和 vw 共存的響應式佈局方案。 基礎代碼 創建項目 首先,我們來創建一個項目,這裏我用的是 Create React App,選擇了 typescript 模板,通過以
昵称 heruns
GraphQL是一種現代的API查詢語言,它在現代Web應用中得到了廣泛的應用,因為它提供了一種高效、靈活且強大的方式來獲取數據 GraphQL基礎快速應用示例: 1. 後端設置(使用graphql-yoga) 首先,我們需要創建一個GraphQL服務器。安裝graphql-yoga並創建一個簡單的GraphQL schema: npm init -y npm install graphql yo
昵称 天涯學館
什麼是 amiya amiya 是一個組件庫,是對Ant Design的二次封裝,提供頁面級別的組件。 文檔地址 它有什麼特點? 表單只讀模式 默認的 antd 只對少數組件支持 readonly 模式,而 disabled 模式會把 placeholder 顯示出來,且有可能展示不完整。 所以 amiya 為每一種表單類型,提供 readonly 模式,去除默認的圖標符號,變更背景顏色於文字顏色
昵称 viewweiwu
“老哥,聽説你寫的頁面挺多的,我這兒有一個頁面,你覺得你需要多少代碼?” “我看看,也還行吧,不就是個查詢表格嘛,現在大家都用 ProComponent 了,用那個寫一下很快的。我想想,差不多 200 行左右就可以了吧。” “那個呀,我知道,官方的二次封裝組件庫,200 行就可以了嗎?嗯,可以。等等,你説的代碼是否包含了操作按鈕?” “操作按鈕?是指你圖上的 【新增】【詳情】這些按鈕嗎?” “是
昵称 viewweiwu
1 antd中,input組件在觸發onChange時,如果是中文輸入模式,會頻繁被觸發,導致頁面性能降低。尤其是在onChange時需要實時搜索的情況。 2 在mac設備下,如果在onChange中使用value.replace(/\s/g,''/), 會出現無法輸入中文的問題。優化之後,可以正常輸入。 默認情況下的Input組件: 優化之後的ChineseInput 調用方式:
昵称 jsoncode
當我們要渲染一個組件時,通常並不需要關心它是如何定義(是Class還是Function): function Greeting() { return pHello/p; } class Greeting extends React.Component { render() { return pHello/p; } 使用 // 是類還是函數 —— 無所謂 Greeting /
昵称 小盼田
起因 用React.PureComponent時,更新state裏面的count用的方式是++this.state.count,但是意外的導致組件沒有重新render(本人用Hook組件較多,所以感到很疑惑) import React from 'react'; import { Button } from 'antd-mobile'; class DemoChildClass extends
昵称 起風了
LocalStorage 是一個 HTML5 網絡存儲對象,用於將數據存儲在客户端——即本地,在用户的計算機上。 本地存儲的數據沒有到期日期,並且會一直存在,直到被刪除。 (相比之下,會話存儲是另一個 HTML5 網絡存儲 API,它會在瀏覽器關閉時刪除存儲的數據。) 本地存儲是純 JavaScript。 同樣,雖然它仍然在用户的設備上生成純文本文檔,但本地存儲也允許存儲多達 5MB 的數據(與
昵称 註銷
hash模式和history模式的差異是什麼? 拿這個地址為例: http://xxx.com#about http://xxx.com/about hash模式 由於http請求並不包含hash,所以不管hash值為多少,服務器端收到的請求始終都是/。 history模式 history模式下,後面的/about路徑會被服務器接收到,然後嘗試去處理這個/about。 為什
昵称 熱飯班長
遇到的問題 在electron-vite提供的開發服務器中,electron能正常顯示頁面中的路由並能正常跳轉. 而在build打包後,雙擊運行electron應用,路由失效,顯示空白頁面 排查BUG 閲讀了腳手架為我生成的主函數代碼: // HMR for renderer base on electron-vite cli. // Load the remote URL for
昵称 sAkuraOfficial
單實例微前端設計思想 拿到子應用構建後的資源清單,一般項目中都會生成一個asset-manifest.json文件,用來記錄各個子應用的入口資源url信息,以便在切換不同子應用時使用模塊加載器去遠程加載。因為每次子應用更新後入口資源的hash通常會變化,所以需要服務端定時去更新該配置表,以便框架能及時加載子應用最新的資源; 同樣,子應用之間的一些公共依賴通過配置文件記錄; 主應用監聽路由
昵称 浪遏飛舟