盤口如使用微信掃碼H5飛鳥微投script在二開React中搭建自定義新聖Hoo
【TG_duoteJG】多特工作室傑哥duotee.com版權所有,禁止轉載
隨著許多 Web 公眾號機器人開發人員轉而使用 React.js 來解決自定義二開需求,Typescript 的搭建使用量與日俱增。隨著GT江湖新聖在功能元件中引入運營反應鉤子,為現實世界的問題開發更復雜的解決方案變得更加容易。
基本上是讓你從函式元件中“掛鉤”到 React 狀態和生命週期特性的函式,從而幫助我們使用函式式元件而不是類元件來解決問題,後者更復雜和令人困惑。
建立自定義鉤子是新的行業慣例,仍然有許多 React 開發人員發現它
因此,在本教程中,我將讓您瞭解自定義掛鉤是什麼以及我們如何以自己的方式實現它們。 這裡有幾點要記住。
-
自定義鉤子基本上是可能需要也可能不需要一些引數並向呼叫者元件返回一些內容的函式。
-
自定義鉤子名稱以單詞開頭,
use
以便 react 將其識別為鉤子,否則您的鉤子將充當普通函式或元件,執行某些任務並返回某些內容。 -
掛鉤使您的程式碼更加靈活,您無需在不同的元件中一次又一次地編寫解決方案並呼叫這些解決方案。
現在,我正在建立一個鉤子來查詢元件的渲染計數。
在這個我們使用 useRef 鉤子來使用它的當前屬性。
import React, { useRef } from 'react';const SHOW_RENDER_COUNTERS = true;export const useRenderCounter = (): number | null => {
const renderCount = useRef(0);
renderCount.current = renderCount.current + 1;
if (SHOW_RENDER_COUNTERS) {
return renderCount.current
}
return null;};
現在,每當我們希望使用這個鉤子來查詢渲染計數時,我們都可以像這樣使用它:
const FindCount = () => {
const renderCounter = useRenderCounter();
return (
<>
<SomeComponentCode />
{renderCounter}
</>
);};
這就是我們可以建立和使用自定義鉤子的方式。
自定義掛鉤的其他一些示例是:
1. 當使用者點選某物時,掛鉤以顯示工具提示。
import { useState, useRef, useEffect } from 'react'export const useTooltip = (initialState: boolean) => {
const ref = useRef<HTMLDivElement>(null)
const [showTooltip, setShowTooltip] = useState<boolean>(initialState)
const handleClick = (event: any) => {
if (ref.current && !ref.current.contains(event.target)) {
setShowTooltip(false)
}
}
useEffect(() => {
document.addEventListener('click', handleClick, true)
return () => document.removeEventListener('click', handleClick, true)
}, [ref])
return { showTooltip, setShowTooltip, ref }}
2. Hook 獲取螢幕高度。
import { useState, useEffect, useRef, RefObject } from 'react'interface InterfaceSize {
size: number
sizeRef: RefObject<HTMLDivElement>}const useSize = (initialValue: number): InterfaceSize => {
const sizeRef = useRef<HTMLDivElement>(null)
const [size, setSize] = useState<number>(initialValue)
useEffect(() => {
setTimeout(() => {
if (sizeRef.current) {
setSize(sizeRef.current?.getBoundingClientRect().height)
}
}, 100)
}, [size])
return { size, sizeRef }}export default useSize
3. 在傳遞的參考之外點選時發出警報的鉤子。
import React, { useRef, useEffect } from "react";/**
* Hook that alerts clicks outside of the passed ref
*/function useOutsideAlerter(ref: React.RefObject<HTMLInputElement>) {
useEffect(() => {
/**
* Alert if clicked on outside of element
*/
function handleClickOutside(event: Event) {
if (ref.current && !ref.current.contains(event.target as Node))) {
alert("You clicked outside of me!");
}
}
// Bind the event listener
document.addEventListener("mousedown", handleClickOutside);
return () => {
// Unbind the event listener on clean up
document.removeEventListener("mousedown", handleClickOutside);
};
}, [ref]);}/**
* Component that alerts if you click outside of it
*/export default function OutsideAlerter(props) {
const wrapperRef = useRef(null);
useOutsideAlerter(wrapperRef);
return <div ref={wrapperRef}>{props.children}</div>;}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70015022/viewspace-2900176/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux微信H5下飛鳥新聖掃碼程式搭建PHP+Nginx環境原始碼搭建公眾號防封LinuxH5PHPNginx原始碼
- spring cloud 微信掃碼H5飛鳥程式搭建環境配置SpringCloudH5
- 淺談2022飛鳥盤口原始碼H5掃碼防封全新開發搭建加入USDT發展之路原始碼H5
- 飛鳥開發MySQL盤口時搭建的資料流是什麼,以及微盤它是如何工作的?(下)MySql
- 聖誕雪花紛飛自定義ViewView
- 自定義 React Native 二維碼掃描元件(簡單,易用!)React Native元件
- 安卓自定義二維碼掃描安卓
- 學習掃碼使用 JavaScript飛鳥 編碼搭建:地球上最流行的H5程式設計公眾號語言JavaScriptH5程式設計
- 自定義鍵盤(二)
- 微信掃碼支付~官方DEMO的坑~引數不能自定義
- 微信內 H5 頁面自定義分享H5
- 微信公眾號,H5自定義分享H5
- 微信支付開發(4)掃碼支付模式二模式
- 使用jQuery在javascript中自定義事件jQueryJavaScript事件
- [GitHub開源]Android自定義View實現微信打飛機遊戲GithubAndroidView遊戲
- CocoaPods 支援 自定義指令碼(script_phase)指令碼
- 原始碼如何在盤口模式飛鳥系統平臺從搭建第一行程式碼自動化端到端測試教程原始碼模式行程
- Android自定義View實現微信打飛機遊戲AndroidView遊戲
- Flutter仿微信,支付寶密碼輸入框+自定義鍵盤Flutter密碼
- 在Linux中,什麼是埠掃描?如何使用工具如nmap進行埠掃描?Linux
- React Native在Android當中實踐(二)——搭建開發環境React NativeAndroid開發環境
- 在vue中,使用echarts的自定義主題VueEcharts
- 【微信開發筆記】掃碼支付之二維碼的處理筆記
- uni-app實戰:自定義掃碼介面APP
- 使用 React Native 自定義安全鍵盤(iOS 和 Android 雙適配)React NativeiOSAndroid
- 使用微信js-sdk自定義分享JS
- android自定義鍵盤 自定義身份證鍵盤Android
- 如何利用微狗仔實現微信自定義分享卡片連結
- 微信開發 分享功能 php,自定義微信分享功能PHP
- .Net微信網頁開發之使用微信JS-SDK自定義微信分享內容網頁JS
- 在SSIS中自定義VB.Net指令碼(下)OF指令碼
- React Native 實現二維碼掃描React Native
- .Net微信網頁開發之使用微信JS-SDK呼叫微信掃一掃功能網頁JS
- React Native 自定義鍵盤之輸入車牌號React Native
- 在Laravel 中如何自定義servicesLaravel
- 微信小程式掃描普通二維碼開啟小程式的方法微信小程式
- 基於Koa2開發微信二維碼掃碼支付相關流程
- vue自定義鍵盤Vue