React.js 软件包提供开发人员在开发小型 应用程序时可能会用到的实用工具。- }' h& M4 E. g/ b- a3 N
0 B$ i5 w7 N; m- X
+ Y( V$ D6 J% L1 G; o* f/ mTIP由于本软件包提供了扩展 @telegram-apps/sdk 功能的实用程序函数 ,建议首先查看 SDK 软件包 文档。 9 X. G* o; ~4 k- D
安装在继续之前,假定您已经安装了 react 软件包,因为它是 对等软件包的依赖项。 pnpm : - pnpm i @telegram-apps/sdk-react
复制代码npm : - npm i @telegram-apps/sdk-react
复制代码yarn : - yarn add @telegram-apps/sdk-react
复制代码INFO 此软件包完全重新导出 @telegram-apps/sdk 软件包,因此 您无需单独安装。 使用方法下面是该软件包的一个简单使用示例: index.tsx - import ReactDOM from 'react-dom/client';
2 g0 T5 Q. h, J& O& u - import { init, backButton } from '@telegram-apps/sdk-react';
0 c% c7 j. `1 z* [& u2 I - 4 o2 _, a, m) x1 @
- import { BackButton } from './BackButton.js';
[2 @; r/ h8 h) L6 j# g* B$ G
; l" r4 O. G- v- // Initialize the package.. I7 R( x/ g( Y- P+ X( w0 E
- init();, w* l/ }4 D/ q! d9 d# u
- $ b9 }( d6 |) |
- // Mount the Back Button, so we will work with $ @9 r8 r: n7 O
- // the actual component properties.# l) n( h& S/ _: k) O
- backButton.mount();
; F4 S% S( M+ R, ?
0 l1 J% U. |0 ^- y! \" ?- ReactDOM
! L& l z8 u( L+ r( Q: V - .createRoot(document.getElementById('root')!)
; R5 |: r7 \! V+ g- B7 |; h* d: N$ l - .render(<BackButton/>);
复制代码Backbutton.ts - import { useEffect } from 'react'; ^+ s0 u) T, _) J4 |: m* n" N
- import { backButton, useSignal } from '@telegram-apps/sdk-react';2 I5 M* {0 p# Q' A% Q
7 ^$ W- N; i- }- /**
4 r0 q* |; M2 e9 V6 h - * Component which controls the Back Button visibility.) w8 @" x' L" Z: H9 b$ n: R! j' _; K
- */: x3 j: b; }; ?' C# F+ N8 w
- export function BackButton() {2 _5 e3 ?0 a* ^- C, {
- const isVisible = useSignal(backButton.isVisible);& p+ L+ x. |/ J; {1 }
- ^8 c/ d" [* Z+ `9 M
- useEffect(() => {
+ ~0 |6 Q) F+ Z( [0 E+ h - console.log('The button is', isVisible ? 'visible' : 'invisible');
7 S$ x, W9 X5 s) n/ }! @ - }, [isVisible]);
; k& }, {5 \7 L# o) {) @ - / y# ]# g! ^6 u2 x& Q# F2 ^( l7 w
- useEffect(() => {
. Z) v; u. m) V1 S - backButton.show();# `; H2 w# h& Y& L+ C1 T+ f- Q
- return () => {
* X/ J d& e# s8 _# @, U, q - backButton.hide();- V" C+ A+ X: T& k
- };4 J9 g$ U- v, W
- }, []);: u1 o! r' l8 `# b% g! F+ _8 c( i. i
8 ?6 i8 L; s) P: r9 }- return null; \7 F6 W' i/ | I, B
- }
复制代码 HooksuseSignal该辅助工具允许开发人员在 应用程序中使用我们的 signals。 它返回基础值,并在信号值发生变化时进行更新。 - import { useEffect } from 'react';+ @9 W; |/ v/ t4 c7 I
- import { backButton, useSignal } from '@telegram-apps/sdk-react';! I4 `8 a% B6 Y! ]# c W
- 3 K* ]& h. j( s
- function Component() {
; W* r0 R' \5 D3 w - const isVisible = useSignal(backButton.isVisible);
# q$ l& O" ]1 N( p. z) x# ? - " o; Q' `# l9 G! \7 [
- useEffect(() => {: n. X' z2 s# s6 I q+ K7 w
- console.log('The button is', isVisible ? 'visible' : 'invisible');
+ G( o1 t8 w9 [' r - }, [isVisible]);
u) a0 p) i {4 |: U9 v9 G u
1 W! h* `; I3 {- useEffect(() => {! o, E3 W7 {9 ` r* ^
- backButton.show();/ L \4 E. X; Q
- return () => {0 t- l7 Q: T, f# a
- backButton.hide();; f. i S1 ^) [* y5 ]4 T
- };
+ h( K0 M! h {- V - }, []);
6 j& W+ s/ @7 R8 M( [- I; a( g
L* S( a# x7 a( Q- return null;
5 Y( U; P2 m5 o4 S - }
复制代码 useLaunchParams返回迷你应用程序启动参数的函数。 - import { useLaunchParams } from '@telegram-apps/sdk-react';
2 j, E0 A! S, n/ u/ {5 n( |( o) U U - " d( U3 z h# K$ R
- function Component() {% b# m0 R" ~. k. v9 D! {" y
- const lp = useLaunchParams();3 V, G0 e. d' x+ a0 A# C; E% K
- return <div>Start parameter: {lp.startParam}</div>;7 A/ v: y9 q, P
- }
复制代码 9 i, O4 ^. ?4 w; E4 c: [( |4 u
8 c, g" T) u' W1 P$ `" v
G! c+ u1 ^3 a- K0 j. p) u
|