Aqui está um passo a passo para criar uma Web Part no SharePoint usando SPFx (SharePoint Framework) e PnPjs para obter dados de uma lista:
Passo 1: Configurar o Ambiente de Desenvolvimento
- Instale Node.js:
Certifique-se de ter o Node.js instalado. Você pode baixá-lo aqui. - Instale o Yeoman e o Gerador do SharePoint:
npm install -g yo @microsoft/generator-sharepoint
Passo 2: Criar um Novo Projeto SPFx
- Crie uma nova pasta para o projeto:
md spfx-pnpjs-examplecd spfx-pnpjs-example - Execute o gerador do SharePoint:
yo @microsoft/sharepoint
- Nome do projeto: spfx-pnpjs-example
- Descrição: Exemplo de Web Part usando PnPjs
- Framework: Escolha React (ou outro de sua preferência)
- Nome do projeto: spfx-pnpjs-example
Passo 3: Instalar e Configurar o PnPjs
- Instale o PnPjs:
npm install @pnp/sp @pnp/logging --save - Configure o PnPjs no seu projeto:
- No arquivo
src/webparts/[nomeDaWebPart]/[NomeDaWebPart].ts,
Importe e configure o PnPjs:
TypeScriptimport { sp } from "@pnp/sp";import "@pnp/sp/lists";import "@pnp/sp/items";sp.setup({ sp: { baseUrl: this.context.pageContext.web.absoluteUrl, }, });
- No arquivo
Passo 4: Criar a Lógica para Obter Dados da Lista
- Adicione uma interface para o modelo de dados:
- Crie um arquivo
src/webparts/[nomeDaWebPart]/IListItem.ts:
TypeScriptexport interface IListItem { Title: string; Id: number; }
- Crie um arquivo
- Modifique o componente para buscar dados da lista:
- No
arquivosrc/webparts/[nomeDaWebPart]/components/[NomeDaWebPart].tsx,
adicione a lógica para obter dados:
TypeScriptimport * as React from 'react'; import { sp } from "@pnp/sp";import { IListItem } from '../IListItem';export default class [NomeDaWebPart] extends React.Component<{}, {items: IListItem[] }> { constructor(props: {}) {super(props);this.state = { items: [] }; } public componentDidMount(): void { this._getListItems(); } private async _getListItems(): Promise<void> {const items: IListItem[] = awaitsp.web.lists.getByTitle("NomeDaLista").items.getAll();this.setState({ items }); } public render():React.ReactElement<{}> { return ( <div> <h2>Itens daLista</h2> <ul> {this.state.items.map(item => ( <li key={item.Id}>{item.Title}</li> ))} </ul> </div> ); } }
- No
Passo 5: Testar e Implantar a Web Part
- Execute o projeto localmente:
gulp serve - Implante a Web Part:
- Execute os comandos:
gulp bundle --shipgulp package-solution --ship
Carregue o arquivo.sppkggerado no catálogo de aplicativos do SharePoint e adicione a Web Part ao seu site.
- Execute os comandos:

Leave a comment