Vue.js 软件包提供开发人员在开发迷你应用程序时可能会用到的实用工具。6 q3 @6 E/ r0 Y( f4 b& J% o1 U
$ g( B. o9 l; d4 O, X1 V0 N7 S
TIP 由于此软件包提供了扩展 @telegram-apps/sdk 功能的实用功能,建议先查看 SDK 软件包的 文档。
" A6 F2 _* V/ N8 ]# Y
Y9 H, Q6 u) k. ^8 r安装在继续之前,假定您已经安装了 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';/ a; F/ l0 r3 s) [) ]# |/ a
- import { init, backButton } from '@telegram-apps/sdk-vue';' K2 l2 l: s$ A( ^+ ?
" n6 p$ C( x7 l5 {: i5 v4 y8 M1 G- import { BackButton } from './BackButton.vue';
& B6 v8 v5 l0 Y# c8 d: C
8 G; ~, m5 T# q2 [9 J: g- // Initialize the package.6 r$ U+ r7 R6 I
- init();) L4 V7 V! E F% ?& h: a
- : o0 O( s/ D& V: w
- const app = createApp(BackButton);
# Z& i. ]- ` x+ _; T+ C7 _ - # O/ B$ L* B( E8 \
- // Mount the Back Button, so we will work with
! e7 p e F7 [- d - // the actual component properties.. F$ P) E$ \8 i: C
- backButton.mount();* @1 G6 f) S1 Y
- ! P1 E) o0 n) B" d; O2 c4 Y
- app.mount('#root');
复制代码BackButton.vue - /**8 L8 g% A- \1 }5 }: _. B8 i% F
- * Component which controls the Back Button visibility.* Y2 q4 B. j" E$ ^! _# O/ x3 m) w
- */
" Q9 C+ t6 f% ?* p' I - <script setup lang="ts">
4 g$ _$ m* N6 T8 n - import { watchEffect, onMounted, onUnmounted } from 'vue';" a& ^9 T- ^- {/ ]% p
- import { backButton, useSignal } from '@telegram-apps/sdk-vue';
( D1 w% I: u3 R* f( u - $ w$ G3 _4 |' N0 o6 m! ?' W
- const isVisible = useSignal(backButton.isVisible);8 K% ^6 x; ^( D3 K) w
0 z5 U' v3 X0 U( c- watchEffect(() => {
x% ]9 _& h5 v3 M X4 C8 l - console.log('The button is', isVisible.value ? 'visible' : 'invisible');' I+ i9 a$ u# X6 X
- });
. o* \7 i2 q, `. s* E" g - , J' r7 c; E/ P' H( U
- onMounted(() => {
1 y. O! a0 c! V/ ? - backButton.show();
# v! N0 ], D9 u4 S& M - });5 J: K8 ~9 n8 g6 V- r0 J
- ; |/ l0 P$ _9 y) W7 Z! F1 _9 ]) k& E
- onUnmounted(() => { b! \9 l1 X% X
- backButton.hide();
: ^' o( e, ]/ R. E - });
* [6 O0 O' d( G# l - </script>
# |+ }- I# z) L
4 z' f2 j3 R2 I( y c) t8 l: ?- <template></template>
复制代码 HooksuseSignal该辅助工具允许您在应用程序中使用我们的 signals。它 返回一个 Vue ref,每次我们的信号发生变化时,它都会更新。 - <script setup lang="ts">% \0 X' R) B8 W; F" r1 E- Z
- import { watchEffect, onMounted, onUnmounted } from 'vue';# l/ [: `5 `, U8 P( d
- import { backButton, useSignal } from '@telegram-apps/sdk-vue';! }& n! b0 W4 \, ]" d2 F
/ ]7 D. I$ z) x- o z- const isVisible = useSignal(backButton.isVisible);
. C) `9 M/ f& t1 z, j9 m2 n
7 |" G# B, e- L Y- watchEffect(() => {, }- `9 [: B- f
- console.log('The button is', isVisible.value ? 'visible' : 'invisible');
8 [, {/ k, N% V4 k - });
$ q) z |( x5 ]3 |: \1 P
% U) w' A4 I, e# p, j- onMounted(() => {
* [. s* N, L* d - backButton.show();+ A# y& P1 i& I
- });
' @0 S0 v* K' r( M! t9 u
/ ^* O9 y$ }) t- onUnmounted(() => {/ m, Y& H9 r3 M) D7 H: x
- backButton.hide();
. s7 b0 d) ]* h* J - });
8 P- T6 S( V* S1 l; } - </script>
0 s- ?; |6 L9 p; i
- R0 \& R! p1 k; A/ U6 D/ o- <template></template>
复制代码 useLaunchParams返回迷你应用程序启动参数的函数。 - <script setup lang="ts">& ?; n( K$ g/ ?$ p! C o4 i
- import { useLaunchParams } from '@telegram-apps/sdk-vue';. p0 y4 M `0 e. X* u2 f+ W/ b8 L
- * i' T3 h% z% S6 |2 W8 M: V, S- K
- const lp = useLaunchParams();( L- D! C; B1 G- [
- </script>9 T. f. S8 t, u1 W& [7 ]
- & y+ |3 N5 D4 v/ ~# m8 ?! `
- <template>
2 G* d x) M* W5 w8 G- l - <div>Start param: {{ lp.startParam }}</div>+ ^$ l. t7 _8 ~4 Z; `. p+ j2 P& i
- </template>
复制代码 ( f/ t, Z: p l: L% C4 n; ~/ V
! _9 j' y* d. }; I& d# ^+ y# a! @
+ h; a, f; R! n& u' q
|