文档

更快上手 TicketsX

配置指南、完整命令说明、Premium 功能和 REST API 都在这里。

14.3

各框架接入代码

挂件只是一个 script 标签,所以放进任何项目都行。下面是最常被问到的三种接法的确切写法。把 wk_your_key_here 换成挂件卡片上的密钥。

HTML

<script src="https://api.ticketsx.xyz/widget.js" data-key="wk_your_key_here" defer></script>

React

import { useEffect } from 'react'

export function TicketsXChat() {
  useEffect(() => {
    const script = document.createElement('script')
    script.src = 'https://api.ticketsx.xyz/widget.js'
    script.dataset.key = 'wk_your_key_here'
    script.defer = true
    document.body.appendChild(script)

    return () => {
      script.remove()
      window.TicketsXChat?.destroy()
    }
  }, [])

  return null
}

这个组件只渲染一次,放在应用根部附近。清理函数会移除脚本,并在组件卸载时关掉挂件。

Next.js

import Script from 'next/script'

export default function RootLayout({ children }) {
  return (
    <html lang="en">
      <body>
        {children}
        <Script
          src="https://api.ticketsx.xyz/widget.js"
          data-key="wk_your_key_here"
          strategy="afterInteractive"
        />
      </body>
    </html>
  )
}

这里用的是 app router。把 Script 标签放进根布局,挂件就能在页面切换后继续存在。

无论用哪种方式,加载的都是同一个脚本。挂件在 shadow root 里渲染,不会碰你的样式,也不会进你的打包产物。