@atlaskit/teams-app-internal-navigation

中文文档
3.1.0发布于 2026/10/13Apache-2.0TypeScriptESM + CJS近 30 天下载 2.6万

Headless navigation utilities for consistent internal link behaviour across the Teams app.

原始使用文档
文档目录7 节
  1. Usage
  2. Basic Usage
  3. Headless API
  4. Features
  5. Navigation Intents
  6. Navigation Context
  7. Package Exports

@atlaskit/teams-app-internal-navigation

Headless navigation utilities and thin UI wrappers for the Teams app and People & Teams platform packages. Ensures internal and external links behave consistently across the Teams app and embedded People/Teams surfaces.

Usage

Basic Usage

Wrap your app with TeamsNavigationProvider and use the link components directly:

import { TeamsNavigationProvider } from '@atlaskit/teams-app-internal-navigation/teams-navigation-provider';
import { TeamsAnchor } from '@atlaskit/teams-app-internal-navigation/teams-anchor';

function MyComponent() {
    return (
        <TeamsNavigationProvider value={{ navigate: pushRoute }}>
            <TeamsAnchor href="/teams/my-team" intent="navigation">
                My team
            </TeamsAnchor>
        </TeamsNavigationProvider>
    );
}

A complete example with TeamsLink, TeamsLinkItem and TeamsLinkButton is in examples/basic.tsx.

Headless API

Use getNavigationProps when you need to compose navigation behaviour onto custom markup or non-ADS components:

import { getNavigationProps } from '@atlaskit/teams-app-internal-navigation/get-navigation-props';

It returns href, target, rel and a composed onClick from an href, intent, NavigationContext and optional onClick.

Features

Navigation Intents

Each link declares an intent that controls how the browser or app handles the navigation:

  • navigation: Moving within or between Atlassian apps
  • reference: Documentation, support, or reference-style URLs
  • action: Inline flows that may open a preview panel when the required props are set
  • external: Third-party or explicitly external destinations
  • unknown: Intent inferred automatically from the URL via classifyNavigationIntent

Automatic classification considers relative vs absolute URLs, non-HTTP schemes (mailto:, tel:, etc.) and Atlassian-managed hosts (including FedRAMP and isolated cloud handling).

Navigation Context

TeamsAnchor, TeamsLink, TeamsLinkButton and TeamsLinkItem all read from NavigationContext via React context. The provider accepts:

  • navigate(url): When set, used for SPA-style navigation. When omitted, the browser handles navigation (e.g. full page load).
  • openPreviewPanel(props): Optional callback. For action intent, left-click can open a preview panel instead of navigating.
  • forceExternalIntent: When true, links behave as external opens (e.g. new tab) even if the URL would otherwise be treated as in-app navigation — useful inside a preview panel.

Package Exports

The main entry @atlaskit/teams-app-internal-navigation exports TeamsAnchor, TeamsNavigationProvider and useTeamsNavigationContext.

SubpathExports
/teams-anchorTeamsAnchor (wraps ADS Anchor)
/teams-linkTeamsLink (wraps ADS Link)
/teams-link-buttonTeamsLinkButton (wraps ADS LinkButton)
/teams-link-itemTeamsLinkItem (wraps ADS LinkItem)
/teams-navigation-providerTeamsNavigationProvider, useTeamsNavigationContext
/get-navigation-propsgetNavigationProps, NavigationContext, NavigationIntent, NavigationIntentProps

版本与发布记录

@atlaskit/teams-app-internal-navigation 共发布 35 个版本,首次发布于 2026/03/17;过去 12 个月发布了 35 个版本。

版本发布日期距今
3.1.0latest2026/10/1325 天前
3.0.12026/10/0830 天前
3.0.02026/09/241 个月前
2.3.12026/09/171 个月前
2.3.02026/08/192 个月前
2.2.12026/08/053 个月前

关于 @atlaskit/teams-app-internal-navigation 的常见问题

@atlaskit/teams-app-internal-navigation 是什么?

Headless navigation utilities for consistent internal link behaviour across the Teams app.

如何安装 @atlaskit/teams-app-internal-navigation?

在项目目录运行 npm install @atlaskit/teams-app-internal-navigation,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(^18.2.0 || ^19.2.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@atlaskit/teams-app-internal-navigation 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@atlaskit/teams-app-internal-navigation 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@atlaskit/teams-app-internal-navigation 可以商用吗?

@atlaskit/teams-app-internal-navigation 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@atlaskit/teams-app-internal-navigation 的下载量有多少?

根据 npm 官方下载统计,@atlaskit/teams-app-internal-navigation 在 2026/10/07 – 2026/11/05 这 30 天内被下载 25,523 次,日均约 851 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@atlaskit/teams-app-internal-navigation 还在维护吗?

最新版本 3.1.0 发布于 2026/10/13(25 天前);至今共发布 35 个版本,其中过去 12 个月发布了 35 个;首次发布于 2026/03/17。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。