Svelte.js 软件包提供了开发人员在开发微型 应用程序时可能有用的实用工具。
. |( i9 S/ a0 _0 }" g4 D" f$ `5 H+ C' M/ w6 H; ^
. j3 k6 p/ o- F0 h! K9 ?
TIP 由于此软件包提供了扩展 @telegram-apps/sdk 功能的实用功能,建议先查看 SDK 软件包的 文档。 安装在继续之前,假定您已经安装了 svelte-js 软件包,因为它是此软件包的同级依赖关系。 pnpm : - pnpm i @telegram-apps/sdk-svelte
复制代码npm : - npm i @telegram-apps/sdk-svelte
复制代码yarn : - yarn add @telegram-apps/sdk-svelte
复制代码INFO 此软件包完全重新导出了 @telegram-apps/sdk 软件包,因此 您无需单独安装它。 用法下面是该软件包的一个简单使用示例: index.svelte - <script>
6 U/ i; o2 M( T7 A2 M: G! t; U4 C - import { init, backButton } from '@telegram-apps/sdk-svelte'; G, _% }- r% R: s' I; Q# v
- . `" l i5 F4 U5 o, z x/ ]6 `% @9 R
- import { BackButton } from './BackButton.svelte';
. U# Q. ~8 y- `0 |8 }$ [ - 6 @) C6 b3 v% t4 C" T
- // Initialize the package.
5 n2 s! B' l: P! W - init();1 y& p/ l, U4 _, l7 N
- </script>
4 R9 ]+ a8 p9 |2 N8 z: q
) R8 v( l, m- b5 ^0 v- <template>1 U5 B! s3 e- L0 f- B% |
- <BackButton />8 ?! m5 _1 D' ?9 z
- </template>
复制代码BackButton.svelte - /** d3 A+ r7 z7 `$ Q3 x; u3 X4 E
- * Component which controls the Back Button visibility.
4 p, K. s4 S! j% f9 \) c - */* V2 l- |6 {# _6 k! n: m4 Q
- <script>( u5 h" X( C1 |# `: F2 D9 j! N
- import { onMount, onDestroy } from 'svelte';8 M* u t7 O& M: G; i. c6 T
- import { backButton, useSignal } from '@telegram-apps/sdk-svelte';( g9 ]0 I0 }) O
1 m- o; w9 O! n3 G3 e# S- const isVisible = useSignal(backButton.isVisible);
7 [+ b, s$ B: x7 u/ I - 2 ~* E7 x% [0 E
- $: console.log('The button is', isVisible.value ? 'visible' : 'invisible')1 M! h: l( h" p* Q$ q+ ], W
- / ~ v. D8 V8 F! b
- onMount(() => {
* p+ H+ S9 l2 G2 l - backButton.show();- }. q- i3 h+ V' h5 Q
- });( X' \: O2 a9 s
- ; v8 V' t7 ?% H* F8 P, z
- onDestroy(() => {
8 Z7 [8 w, H+ P* o7 |, v/ H, M5 c - backButton.hide();) y2 c9 h; [ @" ^7 F% q
- });
: p: X. d! j" J8 O: t, C( {$ i6 l' X - </script>; L& n( c# I2 k! P1 z$ Z
5 q1 d. F0 r- Z* j7 p- <template></template>
复制代码 HooksuseSignal该辅助工具允许您在应用程序中使用我们的 signals。它 返回一个 Svelte ref,每次信号发生变化时,该 ref 都会更新 - <script>' E5 C( x) R D! b( ]! H" o. Z
- import { onMount, onDestroy } from 'svelte';5 n0 C! E7 @7 g; [2 ~
- import { backButton, useSignal } from '@telegram-apps/sdk-svelte';
1 F7 S% M' X. ` - 5 T3 w1 U- P! F- k( @9 r$ f* H
- const isVisible = useSignal(backButton.isVisible);& ~4 G$ A9 s5 k
- , E" W7 q/ H: T+ e5 [2 W" c
- $: console.log('The button is', isVisible.value ? 'visible' : 'invisible')
3 `0 r, S0 V; {2 I" a9 { [ - . L$ V2 g# m. q; |( E
- onMount(() => {1 b8 o9 g* y; x R7 l$ G }6 r
- backButton.show();4 k1 u# Y$ n3 K, b
- });+ y. b S# d* f# Q7 x7 @
- V3 e0 s5 N4 c
- onDestroy(() => {
% H( K a3 p# { - backButton.hide();
8 c7 a- g( C" {4 `" |9 q. M, @ D - });
) Q* X4 S, c& q3 b$ s - </script>
7 p2 B& G) i5 V( y$ d U& S
$ }1 V5 I. R0 f5 o, p& z- <template></template>
复制代码 $ X) G/ w! j1 p. q6 n
useLaunchParams返回迷你应用程序启动参数的函数。 - <script>4 D `6 x* v% w2 }' u3 L: H2 z! q
- import { useLaunchParams } from '@telegram-apps/sdk-svelte';* c& F9 M; t1 z" m% [: n- K8 Y
- 3 p% @% w8 u* e. c2 s+ ?
- const lp = useLaunchParams();( @$ i A: g2 ?, B* R+ Y- X
- </script>1 @% a4 B% W1 C5 k
% Q1 U5 U+ C/ d2 h- <template>
5 N* t8 Z8 { x - <div>Start param: {{ lp.startParam }}</div>9 _5 t# r# k7 B: |* K
- </template>
复制代码 ( c! P: G* K" L: T, b
$ q' Q3 h) B: s
|