SharePoint Framework версии 1.7: заметки о выпуске

Возможно, это крупнейший выпуск новых функций с первоначальной предварительной версии (или с предварительной версии расширений).

Дата выпуска: 8 ноября 2018 г.

Важно!

На этой странице рассматриваются сведения, связанные с определенной версией выпуска SPFx. На этой странице не содержатся дополнительные предварительные требования SPFx, которые необходимо установить для разработки решений SPFx, включая Node.js, Yeoman и другие средства.

Дополнительные сведения об этих предварительных требованиях см. в статье Настройка среды разработки SharePoint Framework.

Обновление проектов с версии 1.6 до версии 1.7

  1. В файле package.json проекта определите все пакеты SPFx версии 1.6. Для каждого пакета SPFx:
    1. Удалите существующий пакет версии 1.6:

      npm uninstall @microsoft/{spfx-package-name}@1.6
      
    2. Установите обновленный пакет версии 1.7:

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

Совет

В CLI для Microsoft 365 доступно удобное пошаговое руководство по обновлению ваших решений до последней версии SharePoint Framework.

Новые функции и возможности

Динамические данные

Для функции динамических данных мы внесли ряд улучшений в общедоступную версию.

Создание конфигурации

Основная часть новых возможностей, добавленных на этапе между предварительной версией для разработчиков и общедоступной версией, касается области свойств. Для реализации новых возможностей появились различные классы, включая

  • IPropertyPaneConditionalGroup, что дает возможность отображать разные группы на основании определенного условия.
  • С помощью классов IDynamicDataSharedPropertyConfiguration, IDynamicDataSharedPropertyFilters, IDynamicDataSharedSourceConfiguration, IDynamicDataSharedSourceFilters и IPropertyPaneDynamicFieldSetProps можно создавать элементы управления в области свойств, чтобы предоставлять авторам возможность выбирать источник динамических данных и свойство.
  • Мы упразднили (и полностью удалим в будущем выпуске) предварительную версию для разработчиков интерфейсаIPropertyPaneDynamicTextFieldProps и функции PropertyPaneDynamicTextField: это было временное решение для редактирования динамических свойств.
  • Мы обновили интерфейс IWebPartPropertiesMetadata, чтобы разработчик мог объявлять свойства веб-части как динамические. Это дает нам возможность создавать для вас объекты DynamicProperty во время создания веб-части.

Базовые данные

В области базовых данных DynamicDataSourceManager теперь предоставляет sourceId источника данных (это полезно при отладке). Источник данных теперь может предоставлять обратный вызов getAnnotatedPropertyValue, который будет использоваться для отображения локализованных строк и образцов данных конечному пользователю. Наконец, при вызове DynamicProperty объекта для получения текущего значения свойства можно вызвать метод , который возвращает одно свойство, или , который вернет массив. Это полезно, когда заданный источник данных может возвратить один или несколько объектов (например, выбранные элементы в веб-части списка), при этом всегда требуется поддерживать несколько свойств. В обоих сценариях платформа даст вам возможность получить один объект или массив вне зависимости от того, какие данные предоставляет источник базовых данных. Это может быть полезно, если вы создаете веб-часть (например, карточку "Люди"), в которой всегда должен отображаться один человек. Вы можете предоставить возможность автору выбрать текущего пользователя в источнике данных контекста или предоставить пользователю возможность выбранного автора из выбранного элемента веб-части списка. Разработчику необходимо вызвать только property.tryGetValue(): вы всегда получите одно значение (или "undefined" — "не определено").

Встроенные источники данных

Первым встроенным источником данных является источник данных контекста страницы. Это упрощенная версия текущего объекта PageContext. Этот источник данных возвращает текущего пользователя, список, сайт и т. п. За ним последуют другие источники данных (веб-часть списка/библиотеки документов и пр.).

Поддержка SharePoint Server 2019

При создании решений для версии 2019 вы получите набор функций из общедоступной версии 2019. Это общедоступный код версии и SharePoint Framework версии 1.4.1

SPFx для вкладок Teams (предварительная версия для разработчиков)

Теперь вы можете создавать решения для вкладок Microsoft Teams с помощью SPFx. При этом сохраняются все прежние инструменты сборки, упаковки, размещения, CDN и проверки подлинности. Теперь для объекта контекста доступно свойство microsoftTeams, предоставляющее объект SDK Teams. Теперь, если ваше решение размещено в виде приложения Teams, вы получите доступ ко всему объекту контекста Teams, содержащему такие данные как имя команды, идентификатор, канал и т. д. Достаточно загрузить файл без публикации файл teamsApp.zip с манифестом, который мы предоставляем в проекте, сформированном с помощью Yeoman.

Приложения на основе Teams в SharePoint (предварительная версия для разработчиков)

Если вы создали решение вкладки Teams, размещенное у поставщика, теперь вы можете отправить это решение непосредственно в каталог приложений SharePoint, а вкладка будет доступна в качестве веб-части. Последняя версия пакета SDK teams содержит объект контекста SharePoint, который предоставляет тот же объект PageContext, к которому у вас есть доступ в SharePoint (в первоначальном выпуске пакета SDK для Teams он типизированный как любой; будущий выпуск пакета SDK будет иметь полный интерфейс). Однако объект будет таким же). Для большего удобства можно разместить это приложений, размещенное у поставщика, с помощью новой функции Приложение на всю страницу.

Приложения на всю страницу (предварительная версия для разработчиков)

Мы получили множество просьб реализовать возможность создания в SPFx приложений на всю страницу. Мы считаем, что можем предложить более удачное решение: создание страницы, на которой размещается веб-часть, занимающая всю область содержимого этой страницы. При этом сохраняются средства навигации и заголовок, а также соблюдается форма и стиль остальной части сайта (поэтому невозможна ситуация, когда средства навигации будут с левой стороны страницы приложения на сайте обмена информацией и с правой стороны страницы приложения на сайте команды). В будущем, по мере развития расширений и реализации других настроек, эти настройки будут сохранены. Это означает, что вам (разработчику) следует заботиться лишь о содержимом, но не нужно заботиться о том, чтобы страница приложения внешне выглядела как все остальные страницы системы, заниматься быстрой навигацией по страницам, обрабатывать средства настройки приложений и т. д. У объекта BaseWebPartContext есть свойство formFactor, по которому можно определять размер: полный или стандартный. Сведения о создании страницы приложения см. здесь.

Изолированные веб-части домена (предварительная версия для разработчиков)

С самого начала работы с SPFx мы утверждали важность элементов iFrame, но они не были нужны для основного решения. Теперь платформа достигла достаточного уровня развития, чтобы сделать доступными сценарии, где используются iFrame: в частности, когда для определенной веб-части нужен уровень разрешений, отличный от уровня разрешений для остальной части страницы/клиента. В функции веб-API версии 1.6 можно установить для свойства isDomainIsolated в файле package-solution.json значение "true". При этом все веб-части в решении будут работать в отдельном домене с собственным набором разрешений. Платформа будет обрабатывать создание iFrame и передавать данные в обоих направлениях для правильной работы области свойств и т. д. Управление разрешениями для этого решения осуществляется на той же странице администрирования, что и для управления разрешениями SPFx для остальных ресурсов этого клиента. В этой предварительной версии для разработчиков динамические данные с главной страницы и из изолированной веб-части домена не поддерживаются.

ListSubscriptions в браузере (предварительная версия для разработчиков)

Недавно опубликованный пакет @microsoft/sp-list-subscription позволяет регистрироваться для получения событий браузера при обновлении базовой библиотеки. Вы предоставляете сведения о библиотеке и функцию обратного вызова. Эта функция будет вызвана при обновлении этой библиотеки.

Изменения в этом выпуске

Переделаны события жизненного цикла ContentPlaceholder. Теперь при создании заполнителя содержимого это действие будет успешно выполнено. Если же на текущей странице нет места для заполнителя, то заполнитель не будет отображаться. После перехода пользователя на страницу, поддерживающую заполнитель (или в случае, если поддержка заполнителя становится доступной на странице после создания PlaceholderContent), этот заполнитель будет показан. Новое свойство объекта PlaceholderContent isVisible содержит информацию о том, отображается ли заполнитель. Кроме того, при изменении видимости заполнителей мы будем вызывать для ApplicationCustomizer метод onPlaceholdersChanged(). Если вы хотите получать уведомления об этих изменениях, можно переопределить этот метод.

Мы сделали несколько методов SPComponentLoader общедоступными. getManifests() возвратит список манифестов, известных загрузчику, а loadComponentById загрузит список компонентов по идентификатору с сервера, если этот список до сих пор не загружен (и возврати его вам).

Элементы, упраздненные и удаленные в этом выпуске

  • В этом выпуске удалена поддержка Node.js версии 6.
  • Удалено ранее устаревшее использование MSGraphClient из @microsoft/sp-client-preview. Следует использовать общедоступную версию версии 1.6, которая находится в пакете @microsoft/sp-http .