SharePoint 框架 v1.7 发行说明

这可能是自原始预览版(或扩展预览版)以来我们推出的新功能最多的版本。

发布时间: 2018 年 11 月 8 日

重要

此页面提供与特定 SPFx 发行版本相关的详细信息。 此页面不包含开发 SPFx 解决方案(包括 SPFx Node.js、Yeoman 和其他工具)而必须安装的其他 SPFx 必备组件。

若要了解有关这些必备组件的详细信息,请参阅设置 SharePoint 框架开发环境

将项目从 v1.6 升级到 v1.7

  1. 在项目的 package.json 文件中,标识所有 SPFx v1.6 包。 对于每个 SPFx 程序包:
    1. 卸载现有的 v1.6 程序包:

      npm uninstall @microsoft/{spfx-package-name}@1.6
      
    2. 安装刷新后的 v1.7 程序包:

      npm install @microsoft/{spfx-package-name}@1.7.0 --save --save-exact
      

提示

适用于 Microsoft 365 的 CLI 提供了一个简单的分步指南,可用于将你的解决方案升级到最新 SharePoint 框架版本。

新增特性和功能

动态数据

对于 动态数据 功能,我们对 GA(正式版)工作进行了许多改进。

作者配置

开发人员预览版和 GA 之间的添加内容主要与属性窗格相关。 引入了不同的类来支持此功能,包括

  • IPropertyPaneConditionalGroup,这使你可以根据某些条件显示不同的组
  • IDynamicDataSharedPropertyConfigurationIDynamicDataSharedPropertyFiltersIDynamicDataSharedSourceConfigurationIDynamicDataSharedSourceFiltersIPropertyPaneDynamicFieldSetProps,可用于在属性窗格中创建控件,使作者能够选择动态数据源和属性。
  • 我们已弃用(并会在将来的版本中完全删除)开发人员预览版 IPropertyPaneDynamicTextFieldProps 接口和 PropertyPaneDynamicTextField 函数,这是编辑动态属性的非正当方式。
  • 我们更新了 IWebPartPropertiesMetadata 接口,以允许开发人员将 Web 部件属性声明为动态,这使我们能够在 Web 部件创建时为你创建 DynamicProperty 对象。

基础数据

在基础数据方面,DynamicDataSourceManager 现在将公开数据源的 sourceId (在调试中很有用)。 数据源现在可以提供 getAnnotatedPropertyValue 回调,可用于向最终用户显示本地化字符串和示例数据。 最后,在调用 DynamicProperty 对象以获取属性的当前值时,可以调用 返回单个属性的 或 将返回数组的 。 当给定数据源可能返回一个或多个对象(例如列表 Web 部件的选定项)并且你希望始终支持多个属性时,这非常有用。 对于这两种方案,框架将确保你可以获得单个对象或数组,不受基础数据源公开的内容的影响。 如果要创建始终显示一个人的 Web 部件(例如人员卡片),这会很有用。 可以让作者从上下文数据源中选择当前用户,也可以让用户从列表 Web 部件的选定项中选择作者。 作为开发人员,只需调用 property.tryGetValue(),并且始终会返回单个值(或未定义)。

内置数据源

第一个内置数据源是页面上下文数据源。 它是当前 PageContext 对象的简化版本,将返回当前用户、列表、网站等内容。 后续会推出其他数据源(如列表/文档库 Web 部件)。

SharePoint Server 2019 支持

面向 2019 时,可从 2019 产品获取公共/GA 功能集。 这是 SharePoint 框架 v1.4.1 中的公共/GA 代码

适用于 Teams 的 SPFx 选项卡(开发人员预览版)

现在可以使用 SPFx 创建 Microsoft Teams 选项卡解决方案。 所有生成工具、打包、托管、CDN 和身份验证保持不变。 现在,上下文对象上有一个名为 microsoftTeams 的属性,用于公开 Teams SDK 对象。 以此为基础,如果你的解决方案作为 Teams 应用被托管,你将有权访问完整的 Teams 上下文对象,其中包含团队名称、ID、频道等内容。只需使用我们在 Yeoman 生成的项目中提供的清单旁加载 teamsApp.zip 文件。

SharePoint 中基于 Teams 的应用(开发人员预览版)

如果已创建提供程序托管的 Teams 选项卡解决方案,现在可以将解决方案直接上传到 SharePoint 应用程序目录,该选项卡将作为 Web 部件提供。 最新的 Teams SDK 具有可用的 SharePoint 上下文对象,该对象提供您在 SharePoint 中访问的相同 PageContext 对象, (Teams SDK 的初始版本已将其键入为 any,该 SDK 的未来版本将具有完整的界面。但是,对象将是相同的) 。 为了获得更好的体验,可以在新的 完整页面应用 功能中托管此提供程序托管的应用。

完整页面应用(开发人员预览版)

有一项功能已经被请求很久了,那就是在 SPFx 中创建完整页面应用的功能。 我们认为我们有一个更好的解决方案,即创建一个页面布局,用于托管涵盖页面整个内容区域的单个 Web 部件。 导航和标题等内容仍然存在,并遵循网站其余部分的外形和样式(因此通信网站中的应用页面不会有左侧导航,而团队网站中的应用页面会有)。 将来,随着扩展的发展并允许其他自定义项,这些自定义项将延续。 这意味着,你作为开发人员只需专注于内容,而无需执行大量工作,以使应用页面类似于系统中的其他每个页面、处理快速页面导航、处理应用程序自定义工具等。 BaseWebPartContext 对象上有一个名为" formFactor "的属性会通知你是全尺寸的还是标准的。 若要创建应用页面,请参阅此处。

域独立 Web 部件(开发人员预览版)

从 SPFx 开始,我们一直认为 iFrame 有用途,但主解决方案不需要它们。 现在,框架已经成熟,是时候解锁 iFrame 非常重要的场景了 - 那就是你需要 Web 部件的权限级别不同于页面/租赁的其余部分时。 通过将 package-solution.json 文件中的 isDomainIsolated 属性设置为 true,可以从 v1.6 构建 Web API 功能。 执行此操作时,解决方案中的所有 Web 部件都将使用自己的权限集在单独的域中运行。 框架将处理 iFrame 的创建,来回传递数据以使属性窗格正常工作,等等。 可在管理其余租赁的 SPFx 权限的同一管理页面中管理此解决方案的权限。 在此开发人员预览版中,不支持来自主页和域独立 Web 部件的跨 Web 部件的动态数据。

浏览器中的 ListSubscriptions(开发人员预览版)

使用新发布的 @microsoft/sp-list-subscription 包,可以在更新基础库时注册浏览器事件。 你可以向库提供信息和回调函数,更新库后,将调用你的回调。

本版本中的更改

我们已重新设计 ContentPlaceholder 生命周期事件。 现在,每当创建内容占位符时,它都会成功。 但是,如果当前页面没有占位符的位置,则占位符不会呈现。 一旦用户导航到支持占位符的页面(或者在创建 PlaceholderContent 后页面上启用了占位符支持),我们将显示它。 PlaceholderContent 对象上的新属性,isVisible 将告知是否显示占位符。 此外,当占位符的可见性更改时,我们将在 ApplicationCustomizer 上调用一个名为 onPlaceholdersChanged() 的方法。 如果你希望收到这些更改的通知,可以替换该方法。

我们公开了 SPComponentLoader 中的几种方法。 getManifests() 将返回加载程序知道的清单列表,如果尚未加载组件,loadComponentById 将按 ID 从服务器加载组件(并将其返回给你)。

此版本中的弃用和已删除项目

  • 此版本中已删除对 Node.js v6 的支持。
  • @microsoft/sp-client-preview 中删除了以前弃用的 MSGraphClient。 应使用 @microsoft/sp-http 包中的 v1.6 中的 GA 版本。