--- title: "Crisp" description: "在你的 Nuxt 应用中展示性能优化的 Crisp。" canonical_url: "https://nuxt-scripts.zhcndoc.com/scripts/crisp" last_updated: "2026-05-22T14:11:53.543Z" --- [Crisp](https://crisp.chat/) 是一个客户消息平台,让你可以通过聊天、电子邮件等方式与客户沟通。 Nuxt Scripts 提供了一个 [`useScriptCrisp()`](#usescriptcrisp) 组合函数和一个无头的外观组件 [``](#scriptcrisp) 用于与 Crisp 交互。 ## [``](/scripts/crisp) [``](/scripts/crisp) 组件是一个无头的外观组件,封装了 [`useScriptCrisp()`](#usescriptcrisp) 组合函数,提供了一种简单且性能优化的方式,在你的 Nuxt 应用中加载 Crisp。 它通过使用 [元素事件触发器](/docs/guides/script-triggers#element-event-triggers) 进行性能优化,仅在特定元素事件发生时加载 Crisp。 默认情况下,它将在 `click` DOM 事件时加载。 ### 示例 ```vue [输入] ``` ### 组件 API 有关完整的属性、事件和插槽,请参阅 [外观组件 API](/docs/guides/facade-components#facade-components-api)。 #### 使用环境变量 如果你更喜欢使用环境变量配置你的 id。 ```ts [nuxt.config.ts] export default defineNuxtConfig({ scripts: { registry: { crisp: { trigger: 'onNuxtReady' }, } }, // 你需要提供运行时配置以访问环境变量 runtimeConfig: { public: { scripts: { crisp: { id: '', // NUXT_PUBLIC_SCRIPTS_CRISP_ID }, }, }, }, }) ``` ```text [.env] NUXT_PUBLIC_SCRIPTS_CRISP_ID=<你的_ID> ``` ### 事件 [``](/scripts/crisp) 组件在 Crisp 加载后会触发一个 `ready` 事件。 ```ts const emits = defineEmits<{ ready: [crisp: Crisp] }>() ``` ```vue ``` ### 插槽 **awaitingLoad** 该插槽在 Crisp 加载时显示内容。 ```vue ``` **loading** 该插槽在 Crisp 加载时显示内容。 提示:为了无障碍和用户体验,默认情况下应该使用 `ScriptLoadingIndicator`。 ```vue ``` ## [`useScriptCrisp()`](/scripts/crisp) [`useScriptCrisp()`](/scripts/crisp) 组合函数让你可以细粒度控制 Crisp SDK。它提供了一种方式来加载 Crisp SDK 并以编程方式与之交互。 ```ts export function useScriptCrisp(_options?: CrispInput) {} ``` 请参阅 [脚本注册指南](/docs/guides/registry-scripts) 以了解更多高级用法。 更多信息请参考 [Crisp API 文档](https://docs.crisp.chat/guides/chatbox-sdks/web-sdk/dollar-crisp/)。 ## 示例 加载 Crisp SDK 并以编程方式与其交互。 ```vue ```