@fluentui-react-native/theme

中文文档
0.14.12发布于 2026/11/12MITTypeScriptES Module近 30 天下载 2756

流体反应-本土主题框架实验版

中文使用文档
文档目录3 节
  1. ThemeReference
  2. 创建一个 ThemeReference
  3. ThemeProvider

@fluentui-react-native/主题

这个包是相容的 shim. 主题框架 ThemeReference 类和 ThemeProvider 执行——现在生活在 @fluentui-react-native/design 并且通过它暴露 @fluentui-react-native/design/theming 子模块。 此套件会再导出它们, 这样现有的 @fluentui-react-native/theme 入口继续工作;新代码应从 @fluentui-react-native/design/theming。 。 。 .

ThemeReference

构造一个 Theme 以另一个完全建成的 Theme 或父母关系 ThemeReference,然后分层 PartialTheme 碎片,或 ThemeTransform 函数。 然后提供无效的能力,更新碎片的能力,以及倾听主题变化的能力.

创建一个 ThemeReference

引用通过结合以零或多处食谱为底来创建.

  • 基础 - 要么是一个 Theme 或另一个 ThemeReference
  • 食谱 - 要么是一个 PartialTheme 或窗体的函数 (parent: Theme) => PartialTheme

这个 ThemeReference 支持下列方法:

  • theme - 获得已建主题, 被执行为在被询问时动态创建的主题
  • invalidate() - 让参考文献知道有什么变化, 这将重放曲目 生成一个新的主题
  • update(...recipes) - 更新用于构建主题的食谱,也将使引用无效
  • addOnThemeChanged(listener) - 增加一个被通知主题变化的听众
  • removeOnThemeChanged(listener) - 移除听众

在实践中,这可用于执行一个主题,这个主题具有一些来自外部调用(可能是本地模块)的值,并在这些值变化时重建自己. 这看起来像是:

import { defaultFluentTheme } from '@fluentui-react-native/default-theme';
import { ThemeReference } from '@fluentui-react-native/design/theming';

// in this case wrapping the reference in a function makes it easy to encapsulate the invalidating
export const createMyCustomTheme = () => {
  // create the reference
  const themeRef = new ThemeReference(
    // base it on the default fluent theme
    defaultFluentTheme,
    // mix in some constant values to override
    {
      colors: {
        // stuff here
      },
    },
    // make some outside calls to get some values
    () => {
      // query a body background from somewhere else
      const bodyBackground = checkSomeOutsideValue();
      return {
        colors: {
          bodyBackground,
        },
      };
    },
  );
  // register a change handler that invalidates the reference
  listenForOutsideValueChange(() => {
    themeRef.invalidate();
  });
  return themeRef;
};

ThemeProvider

这是一个标准上下文提供者,将主题引用作为主题道具的投入.

版本与发布记录

@fluentui-react-native/theme 共发布 119 个版本,首次发布于 2020/09/26;过去 12 个月发布了 15 个版本。

版本发布日期距今
0.14.12latest2026/11/124 天前
0.14.112026/11/078 天前
0.14.102026/11/0312 天前
0.14.92026/10/2918 天前
0.14.82026/09/241 个月前
0.14.72026/09/231 个月前

关于 @fluentui-react-native/theme 的常见问题

@fluentui-react-native/theme 是什么?

流体反应-本土主题框架实验版

如何安装 @fluentui-react-native/theme?

在项目目录运行 npm install @fluentui-react-native/theme,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:react(18.2.0 || 19.0.0 || 19.1.4)、react-native(^0.73.0 || ^0.74.0 || ^0.78.0 || ^0.81.6)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@fluentui-react-native/theme 支持 TypeScript 吗?

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

@fluentui-react-native/theme 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@fluentui-react-native/theme 可以商用吗?

@fluentui-react-native/theme 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fluentui-react-native/theme 的下载量有多少?

根据 npm 官方下载统计,@fluentui-react-native/theme 在 2026/10/15 – 2026/11/13 这 30 天内被下载 2,756 次,日均约 92 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fluentui-react-native/theme 还在维护吗?

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