Solid.js 软件包提供开发人员在开发微型 应用程序时可能会发现有用的实用程序。 [!提示] 由于本软件包提供了扩展 @telegram-apps/sdk 功能的实用程序函数 ,建议首先查看 SDK 软件包 文档。
1 W- o$ S' v* l+ v; r4 V( ^4 W( k安装在继续之前,假定您已经安装了 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';
" A6 ^1 X3 E2 b6 v, p3 } - import { init, backButton } from '@telegram-apps/sdk-solid';
6 d" |( k# G- c! Q3 N9 P; H
+ _: w& c3 x P; O; }" P- import { BackButton } from './BackButton.js';
1 h( z1 Y. T9 \* k
2 s6 J; k* v) O. m7 z- // Initialize the package.* ~7 R$ C6 ~4 F5 N$ l6 \
7 c. a& n# W; K9 V4 r& J
& x# A+ z9 J9 J& M1 T# I, L-
$ L0 ] ]' w$ X* d; d; Q# R - 1 i# `( L" V7 b5 X5 i$ f
- backButton.mount();1 x" A7 R2 o6 O# w% b' z, w
- % R* Q: c$ q+ [: `6 O- T) X3 w
- render(() =><BackButton/>, document.getElementById('root')!);
复制代码BackButton.ts - import { createEffect, onCleanup, onMount } from 'solid-js';
: X+ B! g5 W; y$ I% ^ - import { backButton, useSignal } from '@telegram-apps/sdk-solid';; \% f+ P; h6 `+ M8 ~
: a4 ?6 E. p2 \: j9 F- /**
/ x# ~1 m9 v! I - * 控制返回按钮可见性的组件。! @6 K5 M1 z9 M( ?1 W
- */
6 N; i5 u; Y) | - export function BackButton() {0 i. Q2 H; t6 Q* N- S
- const isVisible = useSignal(backButton.isVisible);; x+ U* p0 _; r! q8 Z7 V' o2 F3 [5 y
4 c1 N$ _3 Z% r( G6 u& q- createEffect(() => {
4 b& f3 ~3 p- L! w" ? - console.log('The button is', isVisible() ?'visible' : 'invisible');
4 f) P) @: g/ U7 R8 J) D) e& Q! b" Y - });6 L6 h7 Y" {+ B5 ?! `2 A( ^' I, M
) H1 @8 B) q5 c2 x r ~; a- onMount(() => {
9 b0 S; x" C& ?+ @ - backButton.show();
/ o' w. c, d5 ]. U4 A - onCleanup(() => {% t/ _; s9 G/ K! x
- backButton.hide();
( g2 ^8 j a& s/ l+ X2 M3 C - });/ d0 C- u; {- c; @- k! M6 S4 e/ T
- });
* g+ B: o* y" }5 n6 w5 `
( c8 b% L0 \$ B. z- return null;- d, O8 U+ o# u5 I# x
- }
复制代码 挂钩使用信号一个辅助工具,允许您在应用程序中使用我们的 [信号](.../telegram-apps-signals.md)。 返回一个 "Solid "信号,每次我们的信号发生变化时,该信号都会更新。 - import { createEffect, onCleanup, onMount } from 'solid-js';. I7 q: Z/ k- [0 |6 l" ]4 j
- import { backButton, useSignal } from '@telegram-apps/sdk-solid';
9 K# L' F/ a/ T) T" V" a) i& l- o: \
# b7 d$ ?+ H7 u: O2 l8 }0 B$ X- function Component() {
2 @9 O1 P* Y- ]7 b. k - const isVisible = useSignal(backButton.isVisible);
S+ _0 {, v& X9 N, ? - c5 R _7 F- B- ^- q% k5 h
- createEffect(() => {, W4 m k1 a# Z; b
- console.log('The button is', isVisible() ? 'visible' : 'invisible'; }; onMount(() => { backButton.show(); onCleanup(() => { backButton.show().'visible' : 'invisible');5 C! {) F e' C- h
- });
' \1 r* o ^) m+ F( L0 H - 6 L e* \, Z; f9 l! G! I
- onMount(() => {6 O/ r w' g. Y3 a. d+ Z( a7 Q
- backButton.show();
( u) m; d7 a* b1 |' A3 t - onCleanup(() => {6 o e" S! W. V# e
- backButton.hide();
% G! u6 k: C$ A$ E9 E5 _ - });
. X" q. w; M" k6 u7 s - });% R: S% c2 O+ ]; `3 K
1 m" d% y, ?- l9 ]2 N g# w- return null;" R9 d! K( E4 t/ \0 ~! D8 d K
- }
复制代码 使用启动参数返回迷你应用程序启动参数的函数。 - import { useLaunchParams } from '@telegram-apps/sdk-solid';5 m) K2 C0 S* G% M
1 u2 Y0 H* [( e# ?- function Component() {
+ z+ {: D" D+ E6 m5 C% \ - const lp = useLaunchParams();
! e& @0 ~" _# E) ~0 x* N/ I - return<div>Start param: {lp.startParam}</div>;7 t, M$ n" J! L U% r
- }
复制代码
* ?/ N( l' T' V) ?" ^5 Z. S
p/ h3 K$ n. A! Z0 C |