react自用小技巧(持續更新中)

react自用小技巧(持續更新中)

作者:devwolf

導言:

筆者應屆時,投vue2就任一家大食品廠的資訊部后轉成了react,寫了一年出頭的react類組件。然后跳槽到蘇州科技城的一個原做影視渲染的公司開始全面轉hooks,又寫了兩年多。再后來去一家智倉寫irms羲和調度,react類組件和hooks混用干了5個月。某些在筆者v2ex上公開過的原因,筆者又跳回了互聯網賽道,觀摩著如今vue崗在國內趨于主流,打算“棄暗投明”轉vue崗(也看到了vue3那些很多針對react痛點的新語法糖)。可惜,筆者的事業運一如既往的差,如今在一家給政府做房地產相關的公司里用vue2維護老項目純體力活。

不想完全落下react的相關手藝,下一跳還選react,現在重新拾起來看看官網和自己隨便搓搓東西。

目前這篇連載用于記錄筆者react開發期間遇到的一些封裝技巧/野路子。

同步記錄于筆者的github?devwolf

1.封裝一個自帶了ui組件的類自定義hooks

用react官網的例子改造一下,比較像自定義hooks,但是不完全是。閉包中提供了一個ui組件以及這個ui組件的修改方法,以此來進行外部的額外干預

import { useState } from 'react';export default function MyApp() {const {MyButtonUI:MyButtonUI1,handleClick:handleClick1}  = MyButton()const {MyButtonUI:MyButtonUI2,handleClick:handleClick2}  = MyButton()return (<div><h1>Counters that update separately</h1><button onClick={()=>{handleClick1()handleClick2()}}>all</button><MyButtonUI1 /><MyButtonUI2 /></div>);
}function MyButton() {const [count, setCount] = useState(0);function handleClick() {setCount(count + 1);}const MyButtonUI=()=>{return <button onClick={handleClick}>Clicked {count} times</button>}return {MyButtonUI,handleClick};
}

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

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

相關文章

文件批量改后綴名,輕松實現TXT到DOCX格式轉換,高效管理您的文件庫!

文件處理與管理已成為我們日常生活和工作中不可或缺的一環。然而&#xff0c;面對海量的文件&#xff0c;如何高效地進行格式轉換和管理&#xff0c;卻成為了一道難題。今天&#xff0c;我們將為您揭曉一個神奇的解決方案——文件批量改后綴名功能&#xff0c;讓您輕松實現TXT到…

【GPT-4o:開創人工智能新紀元】

GPT-4o&#xff1a;開創人工智能新紀元 最近&#xff0c;GPT-4o問世&#xff0c;再次引發了人們對人工智能技術的關注和討論。這一新型語言模型的出現&#xff0c;不僅在技術上實現了飛躍&#xff0c;也為我們帶來了全新的思考和體驗。接下來&#xff0c;我們將對GPT-4o進行全…

【docker】docker的安裝

如果之前安裝了舊版本的docker我們需要進行卸載&#xff1a; 卸載之前的舊版本 卸載 # 卸載舊版本 sudo apt-get remove docker docker-engine docker.io containerd runc # 卸載歷史版本 apt-get purge docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker…

linux文件共享之samba

1.介紹 Samba是一個開源文件共享服務&#xff0c;可以使linux與windows之間進行文件共享&#xff0c;可以根據不同人員調整共享設置以及權限管理。 2.安裝 一個命令就OK了&#xff1a;yum install -y samba [rootansible01 ~]# yum install -y samba 已加載插件&#xff1a;l…

Python爬蟲之簡單學習BeautifulSoup庫,學習獲取的對象常用方法,實戰豆瓣Top250

BeautifulSoup是一個非常流行的Python庫&#xff0c;廣泛應用于網絡爬蟲開發中&#xff0c;用于解析HTML和XML文檔&#xff0c;以便于從中提取所需數據。它是進行網頁內容抓取和數據挖掘的強大工具。 功能特性 易于使用: 提供簡潔的API&#xff0c;使得即使是對網頁結構不熟悉…

【一刷《劍指Offer》】面試題 31:連續子數組的最大和

牛客對應題目鏈接&#xff1a;連續子數組最大和_牛客題霸_牛客網 (nowcoder.com) 力扣對應題目鏈接&#xff1a;53. 最大子數組和 - 力扣&#xff08;LeetCode&#xff09; 核心考點 &#xff1a;簡單動歸問題。 一、《劍指Offer》對應內容 二、分析題目 1、貪心 從前往后迭…

backbone主干網絡的選取

backbone_name 通常用于指定深度學習模型的主干網絡&#xff08;backbone network&#xff09;。主干網絡是指在整個模型中承擔主要特征提取任務的部分。不同的主干網絡有不同的架構和特征提取能力&#xff0c;適用于不同的任務和數據集。 針對戴著口罩和戴著3D眼睛提取人臉特征…

關于Posix標準接口和Nuttx操作系統

基本介紹 主要參考&#xff1a; Linux 系統中的 POSIX 接口詳細介紹_linux posix-CSDN博客 POSIX&#xff08;Portable Operating System Interface&#xff0c;可移植操作系統接口&#xff09;是由 IEEE&#xff08;Institute of Electrical and Electronics Engineers&#x…

大模型對齊方法筆記四:針對領域問答來進行知識對齊方法KnowPAT

KnowPAT KnowPAT(Knowledgeable Preference AlignmenT) 出自2023年11月的論文《Knowledgeable Preference Alignment for LLMs in Domain-specific Question Answering》&#xff0c;主要針對領域問答來進行知識對齊。 在領域問答有兩個挑戰&#xff1a;希望輸出滿足用戶的要…

Notepad++ 常用

File Edit search view Encoding Language Settings Tools Macro Run Plugins Window 文件 編輯 搜索 視圖 編碼 語言 設置 工具 宏 運行 插件 窗口 快捷方式 定位行 &#xff1a;CTRL g查找&#xff1a; CTRL F替換&am…

小白也能看得懂的基于HTML+CSS+JS實現的五子棋小游戲

五子棋是一種起源于中國的傳統棋類游戲&#xff0c;具有悠久的歷史。 基本規則 棋盤&#xff1a; 五子棋通常在一個 15x15 的棋盤上進行&#xff0c;但也可以在更大的棋盤上進行。棋盤上的每個交叉點稱為一個“點”。 棋子&#xff1a; 五子棋使用黑白兩色的棋子。兩名玩家分別…

【競技寶】歐冠:多特搶開局失敗,皇馬展示頂級防守反擊

本賽季歐冠決賽結束,皇馬在上半場被壓制的情況下,2比0擊敗多特蒙德奪得隊史第15座歐冠冠軍獎杯。比賽中多特蒙德已經展現出了不俗的狀態,可是面對老辣的皇馬他們還是敗下陣來,皇馬用頂級的防守反擊給多特上了一課。通過這場比賽,相信球迷們也清楚當今足壇硬實力不可或缺。 在許…

《Effective C++》《資源管理——14、在資源管理類中小心copying行為》

文章目錄 1、Terms14:Think carefully about copying behavior in resource-managing classes方法一&#xff1a;禁止復制方法二&#xff1a;對底層資源使出“引用計數法”方法三&#xff1a;復制底部資源方法四&#xff1a;轉移底部資源的擁有權 2、總結3、參考 1、Terms14:Th…

7-18 對象關系映射(orm_name)---PTA實驗C++

一、題目描述 一開始看到對象關系映射&#xff0c;其實我是拒絕的。這三個詞湊一塊&#xff0c;能是給C初學者的題嗎&#xff1f; 再仔細讀需求&#xff0c;才發現在課設項目已經用過這功能。Object Relational Mapping&#xff08;ORM&#xff09;就是面向對象&#xff08;O…

計算機基礎之:LSM樹

使用過hbase、cassandra之類nosql數據庫的小伙伴對LSM樹結構應該有所耳聞&#xff0c;那么這種數據結構有哪些優劣勢呢&#xff0c;本文做下簡單介紹。 LSM&#xff08;全稱&#xff1a;Log-Structured Merge Tree&#xff09;是一種廣泛應用于現代數據庫和存儲系統的數據結構…

《平淵》· 柒 —— 大道至簡?真傳一句話,假傳萬卷書!

《平淵》 柒 "真傳一句話, 假傳萬卷書" 對于 "大道至簡"&#xff0c;不少專家可能會說出一大堆亂七八糟的名詞, 比如這樣&#xff1a; 所謂 "大道" 即支撐天地運轉的 "系統自動力"&#xff0c;更具體地來說&#xff0c;即是天地人以…

快手游戲《無盡夢回》官宣開測:熱血動作肉鴿來襲

易采游戲網最新消息&#xff1a;5月30日11:00&#xff0c;快手自研的夢境主題動作冒險手游《無盡夢回》正式宣布開啟測試。此次測試名為“肉鴿進化實驗”&#xff0c;旨在測試多角色技能交會的玩法。游戲將開放32人同局競技&#xff0c;讓玩家在激烈的戰斗中角逐出唯一的勝利者…

HTML如何讓文字底部線條不緊貼在文字下面(既在內容下方又超出內容區域)

hello&#xff0c;大家好&#xff0c;星途星途今天給大家帶來的內容是如何讓文字底部線條不緊貼在文字下面。 話不多說&#xff0c;先上效果圖 簡單來說就是padding和margin的區別。 在網頁設計中&#xff0c;有時我們想要給某個元素添加一個裝飾性的線條&#xff0c;比如底部…

過濾器、監聽器、攔截器的區別

過濾器、監聽器、攔截器的區別 過濾器&#xff08;filter&#xff09;、監聽器&#xff08;Listener&#xff09;是JavaWeb的三大組件。而攔截器&#xff08;Interceptor&#xff09;是Spring框架中的。 我們主要是要分清除過濾器和攔截器的區別&#xff1a; 實現原理&#…

overleaf 寫參考文獻引用

目錄 1、 新建.bib 文件 2、導入引用 3、在文檔中引用參考文獻 4、生成參考文獻列表 1、 新建.bib 文件 在Overleaf項目中&#xff0c;你可以選擇導入現有的 .bib 文件或在項目中創建一個新的 .bib 文件來管理你的參考文獻。 導入.bib 文件&#xff1a; 在項目文件樹中點擊…