React.js 软件包提供开发人员在开发小型 应用程序时可能会用到的实用工具。. Z! x ?; f7 P, i
- l3 y8 E& \1 ^5 A3 h
: m+ [0 f" P _. m2 O6 L3 ]TIP由于本软件包提供了扩展 @telegram-apps/sdk 功能的实用程序函数 ,建议首先查看 SDK 软件包 文档。
8 ^3 ~8 s3 ]0 v6 r( \9 o! C安装在继续之前,假定您已经安装了 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 D9 H5 ]' v& F2 j
- import { init, backButton } from '@telegram-apps/sdk-react';, b' d: l0 j" [, l. X# {& @3 ^1 T( ~
- 1 [' e/ y; i% ^& |8 q1 L
- import { BackButton } from './BackButton.js';0 V; q$ k1 B3 o; r1 M9 Y
$ Z6 I' g$ U/ z% j- F- // Initialize the package.
# ? h1 C. a3 {* k - init();( n. C/ ~5 F" i$ [
- 1 Q ^: {4 {' q% V0 o4 \
- // Mount the Back Button, so we will work with
8 S _- a; s1 }' w$ Y - // the actual component properties.
0 _) `' u* m: h0 `* ~: ^ - backButton.mount();
( b/ m+ @5 _7 x5 ^- h - ; ~. {7 ~, J! r$ N
- ReactDOM1 c1 b9 P2 G% i- F4 D
- .createRoot(document.getElementById('root')!)
) M) c* _$ h1 ^0 ^* T! [8 p - .render(<BackButton/>);
复制代码Backbutton.ts - import { useEffect } from 'react';6 L& i! t" @1 `4 f5 C
- import { backButton, useSignal } from '@telegram-apps/sdk-react';& O% C% {. J9 o: Y
- 3 v4 l; r" u: S+ G# {5 V1 q! f
- /**/ r2 O9 M8 ~8 n* c4 G
- * Component which controls the Back Button visibility.+ q* Z# Q9 a6 q5 J4 M2 d0 q
- */4 a; Y, H9 N- m2 b) ~7 }2 U% l' @
- export function BackButton() {" r7 w; z: r3 R e3 S* x1 M4 Z
- const isVisible = useSignal(backButton.isVisible);, v& Y# v: g# A& i N
! a* H) Y; E6 k5 m- useEffect(() => {
4 Y/ W7 m% Y: ]8 ^ z - console.log('The button is', isVisible ? 'visible' : 'invisible');
4 ?8 [& _7 g" P" V6 R - }, [isVisible]);, V: n6 f. z' f, P
* u* W) J5 @! B: `% Y0 L- useEffect(() => {% _& y/ r) T' V+ |3 ^, x! x
- backButton.show();6 x1 y( Q: b1 W, r2 ]
- return () => {
3 t4 j$ i7 I7 b2 @! l7 s3 W" s - backButton.hide();
& Q$ [( F5 t3 o# {4 _" C( f6 Q$ M - };
) B5 c2 o) H$ }& h, B9 F: A; m - }, []);$ r6 ^5 |6 X! c) A+ S8 S8 u$ ~
- A9 r! {8 e) n: D4 w6 f
- return null;
, s n6 g7 B4 Q4 g - }
复制代码 HooksuseSignal该辅助工具允许开发人员在 应用程序中使用我们的 signals。 它返回基础值,并在信号值发生变化时进行更新。 - import { useEffect } from 'react';9 o5 W! J( w0 l( Q( D5 a
- import { backButton, useSignal } from '@telegram-apps/sdk-react';+ |% w. \+ s* a
9 V9 C/ b4 |; [. A- function Component() {
' ?/ B# ], i* C) L - const isVisible = useSignal(backButton.isVisible);
: h9 X1 v' T# B8 W
, t' x+ {' \' G9 |2 i- useEffect(() => {
: B* M' _! a, N9 R7 K: ` - console.log('The button is', isVisible ? 'visible' : 'invisible');
9 p( ~7 U& B3 n1 d6 M1 W4 [ - }, [isVisible]);! O( T" _7 `* x/ i* J8 n* e0 {
- 0 p" p, \# d) K# G
- useEffect(() => {5 F% U; p% k" ?- X. X. B' _0 h( ]
- backButton.show();
6 T5 Y% E' m, h! O% J; m - return () => {
- P* N3 R: |0 [& X6 ? - backButton.hide();8 ]! H( S3 R: g& T x
- };
' y. P1 M" ~, V) { - }, []);! b2 ~, [3 x$ j, |$ I% S
# _3 q7 L" ~. q# K) D+ ~; e- return null;
' h" ^2 p! `- O - }
复制代码 useLaunchParams返回迷你应用程序启动参数的函数。 - import { useLaunchParams } from '@telegram-apps/sdk-react';6 d' A( @; U5 Y! b W
- 4 c* x/ ^+ c0 ?' D4 w6 N! q
- function Component() {1 u. R C& S; N2 ~1 p: h
- const lp = useLaunchParams();
' u! ^+ [; }5 j1 C% j - return <div>Start parameter: {lp.startParam}</div>;
# Y5 s+ ?% }) @6 r/ V - }
复制代码 " j, Y/ W, p2 m
9 ?# n8 {/ ], l u" M! m) F& q
6 |4 k6 M/ U' I* H |