SharePoint Framework v1.7 のリリース ノート

今回のリリースは、オリジナルのプレビュー (あるいは拡張機能のプレビュー) 以来、おそらく最大の新機能のリリースとなります。

リリース: 2018 年 11 月 8 日

重要

このページでは、特定の SPFx リリース バージョンに関連する詳細について説明します。 このページには、Node.js、Yeoman、その他のツールなど、SPFx ソリューションを開発するためにインストールする必要のある追加の SPFx 前提条件は含まれていません。

これらの前提条件の詳細については、「SharePoint Framework 開発環境を設定する」を参照してください。

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 Framework バージョンに アップグレード するための簡単で段階的なガイダンスが用意されています。

新機能

動的データ

動的データ機能については、GA (一般公開) 作業でいくつかの改善を行いました。

作成者の構成

開発者プレビューと GA の間で追加された主な部分は、プロパティ ウィンドウの周辺です。 これをサポートするために導入されたさまざまな種類のクラスには、以下のような種類があります

  • IPropertyPaneConditionalGroup では、何らかの条件に基づいてさまざまなグループを表示させることができます
  • IDynamicDataSharedPropertyConfigurationIDynamicDataSharedPropertyFiltersIDynamicDataSharedSourceConfigurationIDynamicDataSharedSourceFiltersIPropertyPaneDynamicFieldSetProps では、これらを使用して、プロパティ ウィンドウでコントロールを作成し、作成者は動的なデータ ソースとプロパティを選択できます。
  • 開発者プレビューの IPropertyPaneDynamicTextFieldProps インターフェイスと PropertyPaneDynamicTextField 関数は、動的なプロパティを簡単に編集するためのものでしたが、廃止されました (将来のリリースで完全に削除される予定です)。
  • IWebPartPropertiesMetadata インターフェイスを更新し、開発者が Web パーツのプロパティを動的に宣言できるようにしました。これにより、Web パーツ作成時に DynamicProperty オブジェクトを作成することができます。

基になるデータ

基になるデータ側では、DynamicDataSourceManager がデータソースの sourceId を公開するようになりました (デバッグ時に便利です)。 データ ソースは、ローカライズされた文字列やサンプル データをエンド ユーザーに表示するために使用される getAnnotatedPropertyValue コールバックを提供できるようになりました。 最後に、 オブジェクトを DynamicProperty 呼び出してプロパティの現在の値を取得する場合は、 を呼び出すことができます。これは、1 つのプロパティを返します。または、配列を返します。 これは、あるデータ ソースが 1 つ以上のオブジェクト (リスト Web パーツの選択されたアイテムなど) を返す可能性があり、常に複数のプロパティをサポートする必要がある場合に便利です。 どちらのシナリオでも、フレームワークは、基礎となるデータ ソースが公開する内容にかかわらず、単一のオブジェクトまたは配列を取得します。 これは、常に 1 人のユーザーを表示することを前提とした Web パーツ (ユーザー カードと呼ばれます) を作成する場合に便利です。 作成者がコンテキスト データ ソースから現在のユーザーを選択したり、ユーザーがリスト Web パーツの選択された項目から作成者を選択したりすることができます。 開発者としては、property.tryGetValue() を呼び出すだけで、常に単一の値 (または未定義) を返します。

データ ソースの組み込み

最初の組み込みデータ ソースは、ページ コンテキスト データ ソースです。 これは現在の PageContext オブジェクトを簡素化したもので、現在のユーザー、リスト、サイトなどの情報を返します。 他のデータ ソース (リスト/ドキュメント ライブラリの Web パーツなど) もフォローする予定です。

SharePoint Server 2019 サポート

2019 年をターゲットにすると、2019 年の製品からパブリック/GA 機能セットが得られます。 これは、SharePoint Framework v1.4.1 の公開/GA コードです。

Teams タブ向け SPFx (開発者プレビュー)

SPFx を使用して Microsoft Teams のタブ ソリューションを作成できるようになりました。 ビルド ツール、パッケージング、ホスティング、CDN、認証など、すべてが同じ状態で維持されます。 コンテキスト オブジェクトの microsoftTeams と呼ばれるプロパティで Teams SDK オブジェクトを利用できるようになりました。 ここから、ソリューションが Teams アプリとしてホストされている場合、チーム名、ID、チャネルなどを含む完全な Teams コンテキスト オブジェクトにアクセスできます。Yeoman で生成されたプロジェクトで提供されるマニフェストを含む teamsApp.zip ファイルをサイドロードするだけです。

SharePoint のチームベースのアプリ (開発者プレビュー)

プロバイダーがホストする Teams タブ ソリューションを作成した場合、そのソリューションを SharePoint アプリ カタログに直接アップロードすることで、タブを Web パーツとして利用できるようになります。 最新の Teams SDK には、SharePoint でアクセスできるのと同じ PageContext オブジェクトを提供する SharePoint コンテキスト オブジェクトがあります (Teams SDK の最初のリリースでは、SDK の将来のリリースには完全なインターフェイスが含まれます)。ただし、オブジェクトは同じになります)。 エクスペリエンスを向上させるために、このプロバイダーが提供するアプリを新しいフル ページ アプリ機能でホストすることができます。

フル ページ アプリ (開発者プレビュー)

以前から要望が多かったのが、SPFx でフル ページ アプリを作成する機能です。 Microsoft が考えるより良いソリューションは、ページのコンテンツ エリア全体をカバーする単一の Web パーツをホストするページ レイアウトを作成することです。 ナビゲーションやヘッダーなどのものはまだ存在し、他のサイトのフォームやスタイルに従います (コミュニケーション サイトのアプリ ページには左ナビゲーションがありませんが、チーム サイトのアプリ ページにはあります)。 将来、拡張機能が拡張され、他のカスタマイズが可能になると、それらのカスタマイズも承継されます。 これにより、開発者はコンテンツにのみ集中することができ、アプリ ページがシステム内の他のページと同じように表示されるようにしたり、高速ページ ナビゲーションを処理したり、アプリケーション カスタマイザーを処理したりするための多くの作業を行う必要がなくなります。BaseWebPartContext オブジェクトには formFactor と呼ばれるプロパティがあり、フルサイズか標準か把握することができます。 アプリ ページを作成するには、こちらをご覧ください。

ドメインを分離した WebParts (開発者プレビュー)

SPFx の開始当時から、iFrame には目的があるものの、プライマリ ソリューションにそれは必要ないとしてきました。 フレームワークが成熟した今、iFrame が重要なシナリオの鍵を解き明かす時が来ました。すなわち、Web パーツに他のページやテナントとは異なるレベルのアクセス許可が必要な場合です。 v1.6 で Web API 機能を構築するには、package-solution.json ファイルの isDomainIsolated プロパティを true に設定します。 このようにすると、ソリューション内のすべての Web パーツは、独自のアクセス許可がある独立したドメインで実行されます。 フレームワークは、iFrame の作成や、プロパティ ウィンドウが正しく動作するためのデータの受け渡しなどを行います。 このソリューションのアクセス許可は、残りのテナントの SPFx アクセス許可を管理する場合と同じ管理ページで管理します。 この開発者プレビューでは、メインページの Web パーツとドメインが分離された Web パーツ間の動的データはサポートされていません。

ブラウザーで ListSubscriptions を表示する (開発者プレビュー)

新しく発行された @microsoft/sp-list-subscription パッケージを使用すると、基になるライブラリが更新されたときにブラウザー イベントに登録できます。 ライブラリ 情報とコールバック関数を提供すると、ライブラリが更新された場合に、コールバックが呼び出されます。

このリリースに含まれる変更

ContentPlaceholder ライフサイクル イベントの再作業を行いました。 これにより、コンテンツ プレースホルダーを作成した場合は、必ず成功します。 ただし、現在のページにプレースホルダーを配置する場所がない場合、プレースホルダーはレンダリングされません。 ユーザーがプレースホルダーをサポートするページに移動した場合 (または、PlaceholderContent が作成された後にプレースホルダーのサポートがページで有効になった場合)、それを表示します。 PlaceholderContent オブジェクトの新しいプロパティ isVisible により、プレースホルダーが表示されているかどうか把握することができます。 さらに、プレースホルダーの可視性を変更した場合、ApplicationCustomizeronPlaceholdersChanged() と呼ばれるメソッドを呼び出します。 これらの変更を通知したい場合は、このメソッドを上書きすることができます。

SPComponentLoader のメソッドをいくつか公開しました。 getManifests() はローダーが認識するマニフェストのリストを返し、loadComponentById はコンポーネントがまだロードされていない場合、サーバーから ID でコンポーネントをロードします (さらにそれを返します)。

このリリースでの非推奨と削除されたアイテム

  • このリリースでは、Node.js v6 のサポートを削除しました。
  • @microsoft/sp-client-preview から、以前に非推奨とされていた MSGraphClient の使用を削除しました。 @microsoft/sp-http パッケージ内の v1.6 の GA バージョンを使用する必要があります。