Vue.js 软件包提供开发人员在开发迷你应用程序时可能会用到的实用工具。
* [$ ]7 l1 J7 ]# ~
9 N: o8 [5 i" u0 gTIP 由于此软件包提供了扩展 @telegram-apps/sdk 功能的实用功能,建议先查看 SDK 软件包的 文档。
+ ?3 X+ `7 L2 i; p4 d! U7 i
* F1 u, p2 i+ R+ g3 a: U8 [安装在继续之前,假定您已经安装了 vue 软件包,因为它是此软件包的 的同级依赖关系。 pnpm : - pnpm i @telegram-apps/sdk-vue
复制代码npm : - npm i @telegram-apps/sdk-vue
复制代码yarn : - yarn add @telegram-apps/sdk-vue
复制代码INFO 此软件包完全重新导出了 @telegram-apps/sdk 软件包,因此 您无需单独安装它。 用法下面是该软件包的一个简单使用示例: index.tsx - import { createApp } from 'vue';9 o) Q: h& v; x7 s
- import { init, backButton } from '@telegram-apps/sdk-vue';5 }$ e8 _# o w' Z# n: a2 e
- 6 b5 [0 t5 ~) Q* u1 D3 {5 f% n* T) y4 e
- import { BackButton } from './BackButton.vue';
: ?/ }2 t& y- i9 O' W - & U, v! H2 Z2 V# ~, f; W' {4 | o
- // Initialize the package.6 B+ O4 O, P$ j8 Y
- init();9 O) y5 Y' e. b9 z5 |& K
& ~& Q* x! ~3 |9 h( h- const app = createApp(BackButton); f$ N& u* ~1 [. j
- ! ^- R8 r5 |) V! j" W) V
- // Mount the Back Button, so we will work with
( b6 W9 w( Z# [2 p - // the actual component properties.
% S4 A) @# j- p/ ]7 m* f - backButton.mount();/ }4 L( y0 W" L6 z" T3 T! L; W- D' ~: g
. a* S6 |2 I H, L. N# ~- app.mount('#root');
复制代码BackButton.vue - /**! U. r1 u7 z. _: ]' I9 q
- * Component which controls the Back Button visibility.* Y1 h8 _8 l# q
- */4 n( f" T4 C4 Q
- <script setup lang="ts">. x. n: N9 i9 G: m6 f8 A; R# R
- import { watchEffect, onMounted, onUnmounted } from 'vue';
/ b$ X( w7 `/ h' x1 r7 x) J - import { backButton, useSignal } from '@telegram-apps/sdk-vue';
9 l. M+ e+ s; k6 o, T
2 A6 D+ t4 m4 h- const isVisible = useSignal(backButton.isVisible);: I1 a% o6 _( Q! [+ y4 p0 Q
5 Y7 ^3 t6 Z6 D. Q f3 F- watchEffect(() => { ^6 G$ e+ n! H% H4 @
- console.log('The button is', isVisible.value ? 'visible' : 'invisible'); m* C: v& k, x0 `2 u& `
- });
, I9 X; w; z7 K' ?7 V
3 s N" O, y, W- onMounted(() => {
N- b; J0 q# ~. ?5 ] - backButton.show();/ ]+ P. n9 W; s! c: ?6 V+ Q
- });
7 w2 M8 t2 }2 n0 ?. \ - 9 |$ r# i: C$ b* u4 \4 P" f0 X
- onUnmounted(() => {
) }& d+ g+ ^: F. G - backButton.hide(); m. ? l. v4 k, z
- });
( V( }' n/ z* V6 g' |* ~1 n - </script>
8 ]3 k$ _- q& a) k2 H% k! e2 g - * T2 P: B5 R3 ~. O% U
- <template></template>
复制代码 HooksuseSignal该辅助工具允许您在应用程序中使用我们的 signals。它 返回一个 Vue ref,每次我们的信号发生变化时,它都会更新。 - <script setup lang="ts">- F' ?+ _0 F7 D( Z1 Q
- import { watchEffect, onMounted, onUnmounted } from 'vue';
, `' l7 d2 L- c - import { backButton, useSignal } from '@telegram-apps/sdk-vue';0 H2 |% z$ F: B. b. Y7 L+ d+ K
- . Q( J$ L6 l$ _* G- N9 u
- const isVisible = useSignal(backButton.isVisible);
# Y& w6 C% r% Z( O/ P r+ m' z - 6 h( Z/ b4 ~! B% Z# Y3 y7 u
- watchEffect(() => {
5 H9 v/ K; B) S6 V( X! _ - console.log('The button is', isVisible.value ? 'visible' : 'invisible');; s$ U7 p. P( E2 k( x- ?
- });6 O, u* u6 x6 b
- 7 p' d ]$ x2 t1 b" q' ]
- onMounted(() => {
) i& g7 p+ ]7 L" \$ Q( J' O - backButton.show();
' A- u; k. h5 x( C - });" \9 `4 w; D. U) U/ @
7 m1 N. h0 x1 P- onUnmounted(() => {8 H! P0 E* T0 F' n, m1 W" k& B" y
- backButton.hide();
& L6 R: [2 M+ g1 N) }3 g; A. B7 t - });' e, @# d6 g2 R7 w" e# q
- </script># y2 @: s2 @! ?8 B
- , K; V! n0 X' D+ ~2 B
- <template></template>
复制代码 useLaunchParams返回迷你应用程序启动参数的函数。 - <script setup lang="ts">$ p, @7 B0 X7 \/ h
- import { useLaunchParams } from '@telegram-apps/sdk-vue';& X+ T. m) ]# h9 P- m( [ h3 K
! ~4 L; Y% k5 B' A2 ]1 S/ n2 D6 Y- const lp = useLaunchParams();0 M) O$ p |( v- N) G! j6 x
- </script>& C! p' y( _$ Z# z( M
- 8 s+ ?* T8 \2 B! ?- w5 t
- <template>8 Y2 I+ P2 j' O# s
- <div>Start param: {{ lp.startParam }}</div>
# p. R% L, l! I$ Q$ r5 Z9 u - </template>
复制代码
" B4 Y/ O( ~1 f1 N/ p( W0 E: F, W+ T: U) i' p
" d$ I8 K4 X( b b$ j |