盤口如使用微信掃碼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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- spring cloud 微信掃碼H5飛鳥程式搭建環境配置SpringCloudH5
- Linux微信H5下飛鳥新聖掃碼程式搭建PHP+Nginx環境原始碼搭建公眾號防封LinuxH5PHPNginx原始碼
- 淺談2022飛鳥盤口原始碼H5掃碼防封全新開發搭建加入USDT發展之路原始碼H5
- 飛鳥開發MySQL盤口時搭建的資料流是什麼,以及微盤它是如何工作的?(下)MySql
- 微信公眾號,H5自定義分享H5
- 微信內 H5 頁面自定義分享H5
- .Net微信網頁開發之使用微信JS-SDK自定義微信分享內容網頁JS
- .Net微信網頁開發之使用微信JS-SDK呼叫微信掃一掃功能網頁JS
- 使用微信js-sdk自定義分享JS
- 微信開發之自定義元件(Toast)元件AST
- Flutter仿微信,支付寶密碼輸入框+自定義鍵盤Flutter密碼
- 微信掃碼登入
- 微信程式開發系列教程(四)使用微信API建立公眾號自定義選單API
- 微信小程式 自定義tabbar微信小程式tabBar
- 微信小程式自定義tabBar微信小程式tabBar
- 微信公眾號開發5-自定義選單-微信開發phpPHP
- 微信JSSDK遇見的坑--vue微信自定義分享JSVue
- 聖誕雪花紛飛自定義ViewView
- 微信自定義分享支援https(php)HTTPPHP
- 自定義QQ和微信分享卡片
- 微信小程式掃碼點餐系統怎麼搭建微信小程式
- 學習掃碼使用 JavaScript飛鳥 編碼搭建:地球上最流行的H5程式設計公眾號語言JavaScriptH5程式設計
- 微信小程式使用自定義字型的三種方法微信小程式自定義字型
- 微信小程式掃描普通二維碼開啟小程式的方法微信小程式
- nodejs微信支付之掃碼支付NodeJS
- 基於Koa2開發微信二維碼掃碼支付相關流程
- 微信小程式在頁面,自定義元件中使用資料監聽器微信小程式元件
- 微信小程式自定義導航欄微信小程式
- 微信、支付寶,收款二維碼實時生成,自定義金額 備註生成
- 微信小程式掃碼解析小程式碼微信小程式
- 微信二次開發(生成二維碼)
- 微信小程式使用微信雲託管新增自定義域名並轉發到pexels.com微信小程式
- 淺析微信掃碼登入原理
- 微信掃碼支付(Asp.Net MVC)ASP.NETMVC
- PHP對接微信掃碼登入PHP
- php微信掃碼領優惠券PHP
- java實現掃碼槍-微信支付Java
- 微信小程式-自定義下拉重新整理微信小程式