--- title: "Intercom" description: "在你的 Nuxt 应用中使用 Intercom。" canonical_url: "https://nuxt-scripts.zhcndoc.com/scripts/intercom" last_updated: "2026-05-22T14:11:49.169Z" --- [Intercom](https://www.intercom.com/) 是一个客户消息交流平台,帮助你与客户建立更好的关系。 Nuxt Scripts 提供了一个 [`useScriptIntercom()`](#usescriptintercom) 组合函数和一个无头的外观组件 [``](#scriptintercom) 组件用于与 Intercom 交互。 ## [``](/scripts/intercom) [``](/scripts/intercom) 组件是一个无头的外观组件,封装了 [`useScriptIntercom()`](#usescriptintercom) 组合函数,提供了一种简单并且性能优化的方式,将 Intercom 加载到你的 Nuxt 应用中。 它通过使用 [元素事件触发器](/docs/guides/script-triggers#element-event-triggers) 进行了性能优化,仅在特定元素事件发生时才加载 Intercom。 默认情况下,它会在 `click` DOM 事件发生时加载。 ### 示例演示 ```vue [输入] ``` ### 组件 API 完整的 props、事件及插槽,请查看 [外观组件 API](/docs/guides/facade-components#facade-components-api)。 #### 使用环境变量 如果你想通过环境变量配置你的 app ID。 ```ts [nuxt.config.ts] export default defineNuxtConfig({ scripts: { registry: { intercom: { trigger: 'onNuxtReady' }, } }, // 你需要提供运行时配置以访问环境变量 runtimeConfig: { public: { scripts: { intercom: { app_id: '', // NUXT_PUBLIC_SCRIPTS_INTERCOM_APP_ID }, }, }, }, }) ``` ```text [.env] NUXT_PUBLIC_SCRIPTS_INTERCOM_APP_ID=<你的_APP_ID> ``` ### 事件 [``](/scripts/intercom) 组件在 Intercom 加载时触发一个 `ready` 事件。 ```ts const emits = defineEmits<{ ready: [intercom: Intercom] }>() ``` ```vue ``` ### Intercom API 该组件暴露出一个 `intercom` 实例(`useScriptIntercom()` 的返回值),你可以使用它来调用 Intercom API。 ```vue ``` ### 插槽 该组件默认提供最简洁的界面,仅保证功能性和可访问性。你可以通过多个插槽自定义界面。 **default** 默认插槽显示始终可见的内容。 **awaitingLoad** 该插槽在 Intercom 未加载时显示内容。 ```vue ``` **loading** 该插槽在 Intercom 加载时显示内容。 提示:建议默认使用 `ScriptLoadingIndicator`,提升无障碍和用户体验。 ```vue ``` ## [`useScriptIntercom()`](/scripts/intercom) [`useScriptIntercom()`](/scripts/intercom) 组合函数让你对 Intercom 在网站上的加载时机和方式拥有细粒度控制。 ```ts const { proxy } = useScriptIntercom({ app_id: '你的_APP_ID' }) // 示例 proxy.Intercom('show') proxy.Intercom('update', { name: '张三' }) ``` 请参阅 [注册脚本](/docs/guides/registry-scripts) 指南了解更多高级用法。 ## 示例 仅在生产环境中使用 Intercom。 ```vue [IntercomButton.vue] ```