Skip to content

@telegram-apps/sdk-solid@2

Solid.js 包提供了开发者在开发小程序时可能会发现有用的工具。

\

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

安装

在继续之前,假定您已经安装了 solid-js 软件包,因为它是 的同级依赖包。

bash
pnpm i @telegram-apps/sdk-solid
bash
npm i @telegram-apps/sdk-solid
bash
yarn add @telegram-apps/sdk-solid

INFO

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

使用方法

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

tsx
import { render } from 'solid-js/web';
import { init, backButton } from '@telegram-apps/sdk-solid';

import { BackButton } from './BackButton.js';

// Initialize the package.
init();

// Mount the Back Button, so we will work with 
// the actual component properties.
backButton.mount();

render(() => <BackButton/>, document.getElementById('root')!);
ts
import { createEffect, onCleanup, onMount } from 'solid-js';
import { backButton, useSignal } from '@telegram-apps/sdk-solid';

/**
 * Component which controls the Back Button visibility.
 */
export function BackButton() {
  const isVisible = useSignal(backButton.isVisible);

  createEffect(() => {
    console.log('The button is', isVisible() ? 'visible' : 'invisible');
  });

  onMount(() => {
    backButton.show();
    onCleanup(() => {
      backButton.hide();
    });
  });

  return null;
}

钩子(Hooks)

useSignal

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

ts
import { createEffect, onCleanup, onMount } from 'solid-js';
import { backButton, useSignal } from '@telegram-apps/sdk-solid';

function Component() {
  const isVisible = useSignal(backButton.isVisible);

  createEffect(() => {
    console.log('The button is', isVisible() ? 'visible' : 'invisible');
  });

  onMount(() => {
    backButton.show();
    onCleanup(() => {
      backButton.hide();
    });
  });

  return null;
}

useLaunchParams

返回小程序启动参数的函数。

tsx
import { useLaunchParams } from '@telegram-apps/sdk-solid';

function Component() {
  const lp = useLaunchParams();
  return <div>Start param: {lp.startParam}</div>;
}

Released under the MIT License.