Versionshinweise zu SharePoint-Framework v1.7
Dies ist wahrscheinlich die größte Version für neue Features, die wir seit der ursprünglichen Vorschau (oder vielleicht der Vorschau der Erweiterungen) hatten.
Veröffentlicht: 8. November 2018
Wichtig
Auf dieser Seite werden Details zu einer bestimmten SPFx-Releaseversion erläutert. Es werden keine zusätzlichen SPFx-Voraussetzungen erläutert, die installiert werden müssen, um SPFx-Lösungen zu entwickeln, einschließlich Node.js, Yeoman und anderen Tools.
Informationen zu diesen Voraussetzungen finden Sie unter Einrichten Ihrer SharePoint-Framework-Entwicklungsumgebung.
- Identifizieren Sie in der Projektdatei package.json alle SPFx v1.6-Pakete. Gehen Sie für jedes SPFx-Paket folgendermaßen vor:
Deinstallieren Sie das vorhandene v1.6-Paket:
npm uninstall @microsoft/{spfx-package-name}@1.6
Installieren Sie das aktualisierte v1.7-Paket:
npm install @microsoft/{spfx-package-name}@1.7.0 --save --save-exact
Tipp
Die CLI für Microsoft 365 bietet eine einfache schrittweise Anleitung zum Upgraden Ihrer Lösungen auf die aktuellste SharePoint-Framework-Version.
Für das Feature Dynamische Daten haben wir eine Reihe von Verbesserungen an der allgemeinen Verfügbarkeit vorgenommen.
- Verbinden von SharePoint-Framework-Komponenten mit dynamischen Daten
- Clientseitiges Beispielwebpart mit dynamische Daten in Version 1.7
Der Hauptteil der Ergänzungen zwischen der Entwicklervorschau und der allgemeinen Verfügbarkeit befindet sich im Eigenschaftenbereich. Es gibt verschiedene Arten von Klassen, die dies unterstützen, einschließlich
IPropertyPaneConditionalGroup
, sodass basierend auf einer Bestimmten Bedingung unterschiedliche Gruppen angezeigt werden könnenIDynamicDataSharedPropertyConfiguration
,IDynamicDataSharedPropertyFilters
,IDynamicDataSharedSourceConfiguration
,IDynamicDataSharedSourceFilters
,IPropertyPaneDynamicFieldSetProps
, die zum Erstellen von Steuerelementen im Eigenschaftenbereich verwendet werden können, mit denen Autoren eine dynamische Datenquelle und -eigenschaft auswählen können.- Die Entwicklervorschau
IPropertyPaneDynamicTextFieldProps
-Schnittstelle undPropertyPaneDynamicTextField
-Funktion, die die schnelle und geänderte Methode zum Bearbeiten einer dynamischen Eigenschaft war, ist veraltet (und wird in einer zukünftigen Version vollständig entfernt). - Wir haben die
IWebPartPropertiesMetadata
-Schnittstelle aktualisiert, damit ein Entwickler Webparteigenschaften als dynamisch deklarieren kann, sodass wir dieDynamicProperty
-Objekte zur Erstellungszeit des Webparts für Sie erstellen können.
Auf der zugrundeliegenden Datenseite macht der DynamicDataSourceManager
jetzt die sourceId
der Datenquelle verfügbar (nützlich beim Debuggen). Eine Datenquelle kann jetzt einen getAnnotatedPropertyValue
-Rückruf bereitstellen, der verwendet wird, um dem Endbenutzer lokalisierte Zeichenfolgen und Beispieldaten anzuzeigen. Wenn Sie schließlich das DynamicProperty
-Objekt aufrufen, um den aktuellen Wert einer Eigenschaft abzurufen, können Sie aufrufen, was eine einzelne Eigenschaft zurückgibt, oder , die ein Array zurückgibt. Dies ist nützlich, wenn eine bestimmte Datenquelle ein oder mehrere Objekte zurückgeben kann (z. B. die ausgewählten Elemente eines Listenwebparts), und Sie immer mehrere Eigenschaften unterstützen möchten. In beiden Szenarien stellt das Framework sicher, dass Sie ein einzelnes Objekt oder ein Array erhalten, unabhängig davon, was die zugrunde liegende Datenquelle verfügbar macht. Dies kann nützlich sein, wenn Sie ein Webpart (z. B. eine Personenkarte) erstellen, das immer erwartet, dass eine einzelne Person angezeigt wird. Sie können festlegen, dass der Autor den aktuellen Benutzer aus der Kontextdatenquelle auswählt, oder Sie können den Autor aus dem ausgewählten Element eines Listenwebparts auswählen lassen. Als Entwickler müssen Sie nur property.tryGetValue()
aufrufen, und Sie erhalten immer einen einzelnen Wert (oder nicht definiert).
Die erste integrierte Datenquelle ist die Seitenkontextdatenquelle. Es handelt sich um eine vereinfachte Version des aktuellen PageContext-Objekts, die Elemente wie den aktuellen Benutzer, die Liste, die Website usw. zurückgibt. Andere Datenquellen (z. B. das Listen-/Dokumentbibliotheks-Webpart) folgen.
Wenn Sie 2019 als Ziel festlegen, erhalten Sie eine öffentliche/allgemeine Featuregruppe aus dem Produkt 2019. Dies ist der öffentliche/allgemeine Code aus Version 1.4.1 des SharePoint-Frameworks.
Sie können jetzt Microsoft Teams-Registerkartenlösungen mit SPFx erstellen. Alle Erstellungstools, Paketerstellung, Hosting, CDN und Authentifizierung bleiben unverändert. Für das Kontextobjekt ist jetzt eine Eigenschaft namens "microsoftTeams
" verfügbar, die das Teams SDK-Objekt verfügbar macht. Wenn Ihre Lösung von dort aus als Teams-App gehostet wird, haben Sie Zugriff auf das vollständige Teams-Kontextobjekt, das Elemente wie Teamname, ID, Kanal usw. enthält. Laden Sie einfach eine teamsApp.zip-Datei mit dem Manifest, das wir im von Yeoman generierten Projekt bereitstellen.
- Dokumentation: Erstellen von Microsoft Teams-Registerkarten mit SharePoint Framework
- Tutorial: Erstellen der Microsoft Teams-Registerkarte mit SharePoint Framework
Wenn Sie eine vom Anbieter gehostete Teams-Registerkartenlösung erstellt haben, können Sie die Lösung jetzt direkt in den SharePoint-App-Katalog hochladen, und die Registerkarte ist als Webpart verfügbar. Das neueste Teams SDK verfügt über ein SharePoint-Kontextobjekt, das dasselbe PageContext-Objekt bereitstellt, auf das Sie in SharePoint Zugriff haben (in der ersten Version des Teams SDK ist es als beliebiger typisiert, eine zukünftige Version des SDK wird über die vollständige Benutzeroberfläche verfügen. Das Objekt ist jedoch identisch. Für eine bessere Benutzererfahrung können Sie diese vom Anbieter gehostete App in das neue Vollseiten-App-Feature hosten.
Eine Sache, die schon länger gefragt wurde, ist die Möglichkeit, Vollseiten-Apps in SPFx zu erstellen. Wir denken, dass wir eine bessere Lösung haben, die darin besteht, ein Seitenlayout zu erstellen, das ein einzelnes Webpart hostet, das den gesamten Inhaltsbereich der Seite abdeckt. Elemente wie Navigation und Kopfzeile sind weiterhin vorhanden und folgen der Form und dem Stil des Rests der Website (sodass eine App-Seite auf einer Kommunikationswebsite nicht über den linken Navigationsbereich verfügt, während eine App-Seite auf einer Teamwebsite dies tun wird). In Zukunft werden diese Anpassungen übernommen, wenn Erweiterungen erweitert werden und andere Anpassungen zulassen. Dies bedeutet, dass Sie als Entwickler sich nur auf Ihre Inhalte konzentrieren müssen und nicht viel Arbeit tun müssen, um zu versuchen, die App-Seite wie jede andere Seite im System aussehen zu lassen, die schnelle Seitennavigation zu verarbeiten, Anwendungsanpasser zu verarbeiten usw. Es gibt eine Eigenschaft für das BaseWebPartContext
-Objekt namens "formFactor
", die Sie informiert, wenn Sie wissen, ob Sie voll oder standardmäßig sind. Informationen zum Erstellen einer App-Seite finden Sie hier.
Von Anfang an haben wir immer gesagt, dass iFrames einen Zweck haben, aber dass die primäre Lösung sie nicht benötigt hat. Nachdem das Framework nun ausgereift ist, ist es an der Zeit, die Szenarien freizuschalten, in denen iFrames wichtig waren, nämlich wenn Sie eine andere Berechtigungsebene für ein Webpart als den Rest der Seite/des Mandanten benötigen. Basierend auf der Web-API-Funktion von Version 1.6, indem Sie die isDomainIsolated
-Eigenschaft in Ihrer Datei "package-solution.json" auf "true" festlegen. Wenn Sie dies tun, werden alle Webparts in der Projektmappe in einer separaten Domäne mit einem eigenen Berechtigungssatz ausgeführt. Das Framework übernimmt die Erstellung des iFrames und übergibt Daten hin und her, damit der Eigenschaftenbereich ordnungsgemäß funktioniert usw. Sie verwalten die Berechtigungen für diese Lösung auf derselben Administratorseite, auf der Sie die SPFx-Berechtigungen für den Rest des Mandanten verwalten. In dieser Entwicklervorschau werden dynamische Daten über Webparts von der Hauptseite und einem domänenisolierten Webpart nicht unterstützt.
Mit dem neu veröffentlichten paket @microsoft/sp-list-subscription können Sie sich für Browserereignisse registrieren, wenn eine zugrunde liegende Bibliothek aktualisiert wird. Sie geben die Bibliotheksinformationen und eine Rückruffunktion an. Wenn die Bibliothek aktualisiert wird, wird ihr Rückruf aufgerufen.
Wir haben die ContentPlaceholder-Lebenszyklusereignisse überarbeitet. Wenn Sie nun einen Inhaltsplatzhalter erstellen, ist er erfolgreich. Wenn die aktuelle Seite jedoch keinen Platz für den Platzhalter hat, wird der Platzhalter nicht gerendert. Sobald der Benutzer zu einer Seite navigiert, die den Platzhalter unterstützt (oder die Platzhalterunterstützung auf der Seite aktiviert wird, nachdem der PlaceholderContent erstellt wurde), wird er angezeigt. Eine neue Eigenschaft für das PlaceholderContent-Objekt isVisible
informiert Sie darüber, ob der Platzhalter angezeigt wird. Wenn sich die Sichtbarkeit von Platzhaltern ändert, rufen wir außerdem eine Methode für die ApplicationCustomizer
auf, die onPlaceholdersChanged()
aufgerufen wird. Wenn Sie über diese Änderungen benachrichtigt werden möchten, können Sie die Methode überschreiben.
Wir haben einige Methoden für die SPComponentLoader
öffentlich gemacht. getManifests()
gibt die Liste der Manifeste zurück, die dem Ladeprogramm bekannt sind, und loadComponentById
lädt eine Komponente nach ID vom Server, wenn sie noch nicht geladen wurde (und gibt sie an Sie zurück).
- Die Unterstützung für Node.js v6 wurde in dieser Version entfernt.
- Die zuvor veraltete Verwendung von MSGraphClient wurde aus @microsoft/sp-client-preview entfernt. Sie sollten die allgemein verfügbare Version von v1.6 verwenden, die sich im Paket @microsoft/sp-http befindet.