English 简体中文 繁體中文 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french

简体中文 繁體中文 English 日本語 Deutsch 한국 사람 بالعربية TÜRKÇE คนไทย Français русский

回答

收藏

Telegram 小程序 | TypeScript @telegram-apps/sdk-vue

开源社区 开源社区 11563 人阅读 | 0 人回复 | 2025-02-25

Vue.js 软件包提供开发人员在开发迷你应用程序时可能会用到的实用工具。- S5 s: B' f1 J/ a) H

7 C6 R) l- v6 Z/ \6 L6 c* o

TIP

由于此软件包提供了扩展 @telegram-apps/sdk 功能的实用功能,建议先查看 SDK 软件包的 文档。

; H6 a1 t9 |; n, h: T7 B2 |

9 H: P" U9 T) i4 h安装

在继续之前,假定您已经安装了 vue 软件包,因为它是此软件包的 的同级依赖关系。

pnpm :

  1. pnpm i @telegram-apps/sdk-vue
复制代码

npm :

  1. npm i @telegram-apps/sdk-vue
复制代码

yarn :

  1. yarn add @telegram-apps/sdk-vue
复制代码

INFO

此软件包完全重新导出了 @telegram-apps/sdk 软件包,因此 您无需单独安装它。

用法

下面是该软件包的一个简单使用示例:

index.tsx

  1. import { createApp } from 'vue';
    4 `( c. I( C' L5 e& z; F
  2. import { init, backButton } from '@telegram-apps/sdk-vue';
    " S  ~2 V8 Q! ~% }1 D$ T( @  B
  3. $ ]' p$ c3 L4 p9 X) }- u
  4. import { BackButton } from './BackButton.vue';
    3 q- ^$ k( }- M8 h3 a& a9 O# D

  5. + V$ W+ `4 Q5 N! t# J( }
  6. // Initialize the package.- ]3 Y; K4 R, u, |- e1 y' i
  7. init();
    ! E# B" ~" ~* P7 T, F$ ^

  8. 5 Y: z6 E& y( l$ o5 X
  9. const app = createApp(BackButton);
    ) j' @) z( H, Z. o/ ?, C
  10. ) R' f% w0 I+ k, M! }
  11. // Mount the Back Button, so we will work with
    3 a! J! @' @/ j" o" ?
  12. // the actual component properties.
    7 _8 u# w  S5 d9 W5 e: ]3 p
  13. backButton.mount();
    . g8 c/ ~! d  B

  14. % _8 q. D; B. u
  15. app.mount('#root');
复制代码

BackButton.vue

  1. /**
    3 |/ h' V! `# r7 I2 V  E# H
  2. * Component which controls the Back Button visibility.
    ) x7 o% ^$ ?) X- o' {  J
  3. */8 c9 k4 C" P" F
  4. <script setup lang="ts">
    ; i" ^6 i( H0 f. i2 [1 R
  5. import { watchEffect, onMounted, onUnmounted } from 'vue';, T8 S3 j+ A9 y, o2 w1 H& G7 b2 Y
  6. import { backButton, useSignal } from '@telegram-apps/sdk-vue';
    8 T) p1 a: M0 ~$ F

  7. 3 L3 B6 C- c5 f0 J$ Z, w
  8. const isVisible = useSignal(backButton.isVisible);' A6 |% V* Z0 G3 T6 B4 U

  9. $ M. K$ |# x" {# L+ K
  10. watchEffect(() => {3 a) R7 s9 Y% |" [& N
  11.   console.log('The button is', isVisible.value ? 'visible' : 'invisible');
    ( ~+ X, f1 [2 E2 ~
  12. });
    6 K5 _* O3 O3 Z3 Y( }
  13. * f& K6 L2 S6 M1 m, w
  14. onMounted(() => {4 Q! A( {7 o# W# e
  15.   backButton.show();
    / i! v8 n4 o$ [. d7 {0 n0 M
  16. });
    1 E) y  I+ q1 ^4 j8 `7 P
  17. ! T8 Q5 z# ^0 ~) P" a
  18. onUnmounted(() => {& P8 _% E/ S) k7 K; T/ Y6 T
  19.   backButton.hide();% p# g+ v  Y: ~9 b+ B- R. ?
  20. });* V" I6 F; p* h% q& T
  21. </script>
    9 U* e9 l$ ]8 H1 B! Z9 X
  22. " a3 j5 @1 U6 [# z, K8 p  G4 k
  23. <template></template>
复制代码
HooksuseSignal

该辅助工具允许您在应用程序中使用我们的 signals。它 返回一个 Vue ref,每次我们的信号发生变化时,它都会更新。

  1. <script setup lang="ts">1 `7 F3 e4 k. S+ c1 L
  2. import { watchEffect, onMounted, onUnmounted } from 'vue';+ v% N; [" i, I$ n, R
  3. import { backButton, useSignal } from '@telegram-apps/sdk-vue';; L2 ^3 D; ?1 {6 V) J  k

  4. 9 m3 M2 h8 K' h
  5. const isVisible = useSignal(backButton.isVisible);! X/ q' }7 x- b1 K7 J4 c) M

  6. 1 W9 @( N5 V' J* \( a$ i) ]
  7. watchEffect(() => {
    % b  @% i5 \7 l5 V" L' k
  8.   console.log('The button is', isVisible.value ? 'visible' : 'invisible');
    . m6 N7 ^7 `5 a9 \7 i
  9. });: E3 v3 K) H; G. b6 B
  10. 2 ?/ Y8 O0 W( M( I: }' T. V4 g1 K7 W
  11. onMounted(() => {# E" `& D8 I  N7 ~: _1 }
  12.   backButton.show();2 S, D, L0 A2 Q3 d( I& W3 c
  13. });# C- b4 _2 c( _" O% Q6 C
  14. $ ?4 j% m# o' ]
  15. onUnmounted(() => {1 x. h( T( w3 c( A0 Y; d
  16.   backButton.hide();
    6 Z0 }& h* l! k! N9 _
  17. });+ P: p5 d9 q9 ]' z7 R
  18. </script>& m) `( K% m1 D9 ^/ T

  19. ; n, \. Y% `" o$ c
  20. <template></template>
复制代码
useLaunchParams

返回迷你应用程序启动参数的函数。

  1. <script setup lang="ts"># a( u6 \8 z: t, s- X
  2. import { useLaunchParams } from '@telegram-apps/sdk-vue';9 v2 Z8 h. V/ d  a( I, H
  3. 5 P) o* t: \2 e8 [
  4. const lp = useLaunchParams();
    0 G( W7 M5 t5 n! Y, J$ F* U
  5. </script>! T( x% i0 X( f( x3 X0 U
  6. # |) v# a7 b* t$ B; d$ w
  7. <template>( W3 M7 x3 G3 b" Y& K. f
  8.   <div>Start param: {{ lp.startParam }}</div>
    $ ]8 b7 E) c9 g; q4 w/ N+ [# \
  9. </template>
复制代码
$ T  |! X8 _( M
- ^5 }+ ?0 q! B6 A. e8 g
# M) k1 o2 |/ H: U
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则