Notas de versão da Estrutura do SharePoint v1.7
Este é provavelmente o maior lançamento de novos recursos desde a visualização original (ou talvez a visualização de extensões).
Lançado em: 8 de novembro de 2018
Importante
Esta página aborda detalhes relacionados a uma versão SPFx específica. Esta página não inclui pré-requisitos SPFx adicionais que devem ser instalados para desenvolver soluções SPFx, incluindo Node.js, Yeoman e outras ferramentas.
Para saber mais sobre esses pré-requisitos, consulte Configurar seu ambiente de desenvolvimento da Estrutura do SharePoint.
- No arquivo package.json do projeto, identifique todos os pacotes SPFx v1.6. Para cada pacote SPFx:
Desinstale o pacote v1.6 existente:
npm uninstall @microsoft/{spfx-package-name}@1.6
Instale o pacote v1.7 atualizado:
npm install @microsoft/{spfx-package-name}@1.7.0 --save --save-exact
Dica
A CLI do Microsoft 365 fornece uma orientação passo a passo fácil para atualizar suas soluções para a versão mais recente da Estrutura do SharePoint.
Para o recurso Dados Dinâmicos, fizemos uma série de melhorias no trabalho de GA (disponibilidade geral).
- Conectar os componentes da Estrutura do SharePoint usando dados dinâmicos
- Amostra de Web Part do lado do cliente usando Dados Dinâmicos em 1.7
A maior parte das adições entre a visualização do desenvolvedor e a GA estão ao redor do painel de propriedades. Existem diferentes tipos de classes introduzidas para suportar isto, incluindo
IPropertyPaneConditionalGroup
, que permite que diferentes grupos apareçam com base em alguma condiçãoIDynamicDataSharedPropertyConfiguration
,IDynamicDataSharedPropertyFilters
,IDynamicDataSharedSourceConfiguration
,IDynamicDataSharedSourceFilters
,IPropertyPaneDynamicFieldSetProps
, que podem ser usados para criar controles no painel de propriedades que permitem aos autores escolher uma propriedade e uma fonte de dados dinâmica.- Nós descontinuamos (e iremos remover completamente em uma versão futura) a interface de visualização do desenvolvedor
IPropertyPaneDynamicTextFieldProps
e a funçãoPropertyPaneDynamicTextField
que era a maneira rápida e suja de editar uma propriedade dinâmica. - Atualizamos a interface
IWebPartPropertiesMetadata
para permitir que um desenvolvedor declare as propriedades da Web Part como dinâmicas, o que nos permite criar os objetosDynamicProperty
para você no momento da criação da Web Part.
No lado dos dados subjacentes das coisas, o DynamicDataSourceManager
agora expõe o sourceId
da fonte de dados (útil na depuração). Uma fonte de dados agora pode fornecer um retorno de chamadagetAnnotatedPropertyValue
que será usado para exibir cadeias de caracteres localizadas e dados de amostra para o usuário final. Por fim, ao chamar o DynamicProperty
objeto para obter o valor atual de uma propriedade, você pode chamar , que retorna uma única propriedade ou , que retornará uma matriz. Isso é útil quando uma determinada fonte de dados pode retornar um ou vários objetos (por exemplo, os itens selecionados de uma Web Part de lista) e você sempre deseja oferecer suporte a várias propriedades. Para ambos os cenários, a estrutura garantirá que você obtenha um único objeto ou uma matriz, independentemente do que a fonte de dados subjacente expõe. Isso pode ser útil se você estiver criando uma Web Part (digamos, um cartão de pessoas), que sempre espera exibir uma única pessoa. Você pode fazer com que o autor escolha o usuário atual na fonte de dados de contexto ou pode fazer com que o usuário escolha o autor no item selecionado de uma Web Part de lista. Como desenvolvedor, você só precisa chamar property.tryGetValue()
e sempre receberá de volta um único valor (ou indefinido).
A primeira fonte de dados interna é a fonte de dados do contexto da página. É uma versão simplificada do objeto PageContext atual, retornando coisas como o usuário atual, lista, site e assim por diante. Outras fontes de dados (como a Web Part da lista/biblioteca de documentos) virão a seguir.
Ao atingir 2019, você obtém o conjunto de recursos públicos/GA do produto de 2019. Este é o código público/GA da v1.4.1 da Estrutura do SharePoint
Agora você pode criar soluções de guias do Microsoft Teams usando SPFx. Todas as ferramentas de compilação, empacotamento, hospedagem, CDN e autenticação permanecem as mesmas. Agora há uma propriedade disponível no objeto de contexto chamada microsoftTeams
que expõe o objeto Teams SDK. A partir daí, se sua solução estiver sendo hospedada como um aplicativo do Teams, você terá acesso ao objeto de contexto completo do Teams, contendo coisas como o nome da equipe, ID, canal, etc. Basta fazer sideload de um arquivo teamsApp.zip com o manifesto que fornecemos no projeto gerado por Yeoman.
- Documentos: Criando guias do Microsoft Teams usando a Estrutura do SharePoint
- Tutorial: Crie a guia Microsoft Teams usando o Estrutura do SharePoint
Aplicativos Baseados em Equipes no Microsoft Office SharePoint Online (Visualização do Desenvolvedor)
Se você criou uma solução da guia do Teams hospedada pelo provedor, agora pode carregar a solução diretamente no catálogo de aplicativos do Microsoft Office SharePoint Online, e a guia estará disponível como uma Web Part. O SDK de equipes mais recentes tem um objeto de contexto do SharePoint disponível que fornece o mesmo objeto PageContext ao qual você acessou no SharePoint (a versão inicial do SDK do Teams o digitou como qualquer outro, uma versão futura do SDK terá a interface completa. No entanto, o objeto será o mesmo). Para uma melhor experiência, você pode hospedar este aplicativo hospedado pelo provedor no novo recurso Aplicativo de página inteira.
Uma coisa que tem sido solicitada há um bom tempo é a capacidade de criar aplicativos de página inteira na SPFx. Acreditamos que temos uma solução melhor, que é criar um layout de página que hospeda uma única Web Part que cobre toda a área de conteúdo da página. Coisas como navegação e cabeçalho ainda existem e seguem a forma e o estilo do resto do site (de modo que uma página de aplicativo em um site de comunicação não terá o navegador esquerdo, enquanto uma página de aplicativo em um site de equipe terá). No futuro, conforme as extensões se expandem e permitem outras personalizações, essas personalizações serão transferidas. Isto significa que, como desenvolvedor, você só precisa se concentrar em seu conteúdo, e não fazer um monte de trabalho para tentar fazer com que a página do aplicativo se pareça com qualquer outra página do sistema, lidar com navegação rápida de páginas, lidar com personalizadores de aplicativos, etc. Há uma propriedade no BaseWebPartContext
objeto chamado formFactor
que permitirá que você saiba se você é do tamanho original ou padrão. Para criar uma página de aplicativo, veja aqui.
Desde o início do SPFx, sempre afirmamos que os iFrames têm uma finalidade, mas que a solução principal não precisava deles. Agora que a estrutura amadureceu, é hora de desbloquear os cenários onde iFrames foram importantes - ou seja, quando você precisar de um nível de permissão diferente para uma Web Part do que o resto da página/locação. Construindo sobre o recurso de API Web da v1.6, definindo a propriedade isDomainIsolated
em seu arquivo package-solution.jso tp true. Ao fazer isso, todas as Web Parts da solução serão executadas em um domínio separado com seu próprio conjunto de permissões. A estrutura irá lidar com a criação do iFrame, passando dados para frente e para trás para permitir que o painel de propriedade funcione corretamente, e assim por diante. Você gerencia as permissões para esta solução na mesma página de administração em que gerencia as permissões SPFx para o restante da locação. Nesta visualização do desenvolvedor, não são suportados dados dinâmicos entre Web Parts da página principal e uma Web Part isolada do domínio.
O pacote de assinatura de @microsoft/sp-list recém-publicado permite que você se registre em eventos do navegador quando uma biblioteca subjacente é atualizada. Você fornece as informações da biblioteca e uma função de retorno de chamada e, quando a biblioteca for atualizada, seu retorno de chamada será chamado.
Reformulamos os eventos de ciclo de vida do ContentPlaceholder. Agora, sempre que você criar um espaço reservado para conteúdo, ele será bem sucedido. No entanto, se a página atual não tiver um espaço para o espaço reservado, o espaço reservado não será renderizado. Assim que o usuário navegar para uma página que ofereça suporte ao espaço reservado (ou o suporte ao espaço reservado for habilitado na página depois que o PlaceholderContent for criado), nós o exibiremos. Uma nova propriedade no objeto PlaceholderContent, isVisible
permitirá que você saiba se o espaço reservado estiver sendo exibido. Além disso, quando a visibilidade dos espaços reservados forem alteradas, chamaremos um método no ApplicationCustomizer
chamado onPlaceholdersChanged()
. Se você deseja ser notificado sobre essas alterações, poderá substituir o método.
Nós tornamos alguns métodos SPComponentLoader
públicos. getManifests()
devolverá a lista de manifestos que o carregador está ciente, e loadComponentById
carregará um componente pela ID do servidor se ele ainda não estiver carregado (e o devolverá para você).
- Removido o suporte para Node.js v6 nesta versão.
- Removeu o uso preterido anteriormente do MSGraphClient de @microsoft/sp-client-preview. Você deve usar a versão ga do v1.6 que está no pacote @microsoft/sp-http .