Solid.js 软件包提供开发人员在开发微型 应用程序时可能会发现有用的实用程序。 [!提示] 由于本软件包提供了扩展 @telegram-apps/sdk 功能的实用程序函数 ,建议首先查看 SDK 软件包 文档。 ! Z l$ a' x0 V" W
安装在继续之前,假定您已经安装了 solid-js 软件包,因为它是 的同级依赖包 pnpm : - pnpm i @telegram-apps/sdk-solid
复制代码npm : - npm i @telegram-apps/sdk-solid
复制代码yarn : - yarn add @telegram-apps/sdk-solid
复制代码INFO 此软件包完全重新导出 @telegram-apps/sdk 软件包,因此 您无需单独安装。 使用方法下面是该软件包的一个简单使用示例: index.tsx : - import { render } from 'solid-js/web';; P8 W# T& \1 z& z6 l
- import { init, backButton } from '@telegram-apps/sdk-solid';- s" l* E0 I1 @+ O3 h7 c/ L" f
- , V( I, d* h5 n8 u! e
- import { BackButton } from './BackButton.js';
! L& @) w n c- K8 @" A& S - - n4 n( b6 O+ r
- // Initialize the package.) D% }" W. l0 E6 S' w" `
/ c& Z8 t0 c3 a! B. ~ \
& K' R7 g1 h1 s* ]-
% r+ _. o) U7 H7 F9 a( h. l7 D
% h" C( S3 @- ]0 y) N- backButton.mount();
/ a0 G0 ]1 K, H j; s7 m4 M7 Y0 s - % D' P) X& d0 N2 K
- render(() =><BackButton/>, document.getElementById('root')!);
复制代码BackButton.ts - import { createEffect, onCleanup, onMount } from 'solid-js';3 s, M4 O6 {! U+ g
- import { backButton, useSignal } from '@telegram-apps/sdk-solid';
" X$ C/ g8 e1 ~1 _
" k- r- Q- a, G3 Y8 ] ?. h7 W: a- /**
& u9 M! [: h$ p* m) G - * 控制返回按钮可见性的组件。
) {; @8 r! N* K - */
! R6 Y( c- b2 T/ w+ f; u6 l - export function BackButton() {( E# e7 O4 H+ P' K! J1 E" w
- const isVisible = useSignal(backButton.isVisible);6 J* X# |5 m7 v& n. ~5 T
7 s) w% s. h/ m0 q0 G# T- createEffect(() => {/ x" M* A' D6 K
- console.log('The button is', isVisible() ?'visible' : 'invisible');, P. H/ c; ^/ G" L, I0 Q
- });7 R8 c6 v* p+ _: r6 y* }
- 2 [) M5 D. F# S ]: u! r' q
- onMount(() => {
6 l. L6 F( A3 k( U - backButton.show();
+ E2 J7 ` k3 ^: q/ z - onCleanup(() => {5 w% }& |5 [* s: p
- backButton.hide();
' z! J. t6 C% ]5 ^) L - });
) s6 F; b# W$ f3 E - });) j. L8 F* K2 ~6 Z0 G& k i
% \+ t | ^) _" Q- return null;
) B1 n) r6 L; u% }3 x - }
复制代码 挂钩使用信号一个辅助工具,允许您在应用程序中使用我们的 [信号](.../telegram-apps-signals.md)。 返回一个 "Solid "信号,每次我们的信号发生变化时,该信号都会更新。 - import { createEffect, onCleanup, onMount } from 'solid-js';
6 U* x" v( z! |) z) p4 n1 F2 s' Y/ S - import { backButton, useSignal } from '@telegram-apps/sdk-solid';) a8 y0 n! |2 @( z2 X3 M9 O. s! }
. T: F! c. y5 L1 _& t" Z' ^% \, O- function Component() {
+ A0 k3 ?; H! }- G7 |, p" i - const isVisible = useSignal(backButton.isVisible);. c5 g0 G# j# ^. _5 G9 E: k
- 4 G# ^6 ]7 D- y8 ^- r. J5 J9 q
- createEffect(() => {/ a% s7 P1 \# H
- console.log('The button is', isVisible() ? 'visible' : 'invisible'; }; onMount(() => { backButton.show(); onCleanup(() => { backButton.show().'visible' : 'invisible');
* q# I3 u1 W; q% @. F - });6 h5 G2 [) G" e# b4 Y
- v9 O2 h, K9 ~- onMount(() => {
- q: F+ I) G$ O; _% A6 n1 t - backButton.show();
4 U# L4 Y$ b7 u! J - onCleanup(() => {
' y; Q6 K$ v$ i# D - backButton.hide();
; Y& s; ` H: y& Q5 l - });
; E6 d" d+ a. n4 U. L! X - });
7 m6 H- i% z- v1 S2 K, e# M, f- n - 1 u y. y1 C+ K" ?& Y; X/ y
- return null;
2 V: R! n+ A+ D1 i2 i% _) u - }
复制代码 使用启动参数返回迷你应用程序启动参数的函数。 - import { useLaunchParams } from '@telegram-apps/sdk-solid';
: b2 j+ b+ ]' Y$ P/ _: V
! u* |8 t. Y! c9 G9 L8 k) Q- function Component() {
- x& h. V# [8 v6 w! u$ A' F - const lp = useLaunchParams();% x5 P( l4 k+ \" ^
- return<div>Start param: {lp.startParam}</div>;0 r' v! u6 ~ s; r
- }
复制代码 5 h$ J5 S! v4 J$ @4 l
6 e6 }* o' @6 f e7 k# G2 e
|