npm 包 @pnp/pnpjs 使用教程

阅读时长 5 分钟读完

简介

在前端开发中,我们通常需要与远程服务进行交互,从而实现数据的获取和提交等功能。为了方便调用服务接口,我们通常使用一些库或框架,例如 jQuery、axios 或者 fetch 等等。而 @pnp/pnpjs 则提供了一种更加简单、易用、可扩展的解决方案。

@pnp/pnpjs 是一个基于 Promise、async/await 和类断言等 ES6 语言特性开发的库,它提供了访问 SharePoint Online 和 SharePoint 2019 的 API 的封装,支持各种 CRUD 操作,可以让开发者轻松地在 SharePoint 中数据操作。

安装

使用 npm 来安装 @pnp/pnpjs:

使用

使用起来很简单,只需在模块中导入 @pnp/pnpjs,就可以开始调用它的方法:

获取列表数据

@pnp/pnpjs 官方文档提供了以下获取列表数据的代码:

首先,我们使用 sp.web.lists.getByTitle("Tasks") 获取一个名为 "Tasks" 的列表对象,然后我们调用 items.get() 方法来获取该列表中所有的项。最后将返回的数据打印到控制台中。

获取单个列表项

如果我们只希望获取某一个列表中的单个项,可以使用以下代码:

这里,我们使用 sp.web.lists.getByTitle("Tasks") 方法获取的列表对象,再用 items.getById(1) 方法获取 ID 为 1 的列表项,并通过 get() 方法获取该项详细信息。最后将返回的数据打印到控制台中。

创建列表项

使用 @pnp/pnpjs 也可以方便地创建一个 SharePoint 列表项:

-- -------------------- ---- -------
--- ---- - ---------------------------------

----------------
    ------ ----- ---
    ------- --- ---------
---------------- -- -
    --------------------
---------------- -- -
    -------------------
---
展开代码

在这里,我们定义了一个名为 list 的变量,使用 sp.web.lists.getByTitle("Tasks") 获取"Tasks"列表对象。我们调用 items.add() 方法来添加一个名为 "Task 1",状态为 "In Progress" 的新任务,并通过 then() 方法来获取添加后的结果。

更新列表项

同样,使用 @pnp/pnpjs 可以也方便地更新一个 SharePoint 列表项:

-- -------------------- ---- -------
--- ---- - ---------------------------------

------------------------------
    ------ ----- - - ---------
    ------- ----------
---------------- -- -
    --------------------
---------------- -- -
    -------------------
---
展开代码

这里,我们再次定义了一个名为 list 的变量,使用 sp.web.lists.getByTitle("Tasks") 获取"Tasks"列表对象。然后使用 items.getById(2) 方法获取 ID 为 2 的列表项,并使用 update() 方法更新该项的标题和状态。最后通过then() 方法获取更新后的结果。

删除列表项

使用 @pnp/pnpjs 可以方便地删除 SharePoint 中的列表项:

在这里,我们再次使用 sp.web.lists.getByTitle("Tasks") 获取列表对象,并使用 items.getById(2) 方法获取 ID 为 2 的列表项。使用 delete() 方法从 SharePoint 中删除该项。

总结

在这篇文章中,我们学习了如何使用 npm 包 @pnp/pnpjs 操作 SharePoint 存储的列表数据。我们可以轻松地使用它来获取、创建、更新和删除数据,而不需要编写一些底层的 HTTP 请求处理。希望这篇文章能够帮助你更好地掌握 @pnp/pnpjs,使你在开发 SharePoint 系统时更加得心应手。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5efb33ce403f2923b035baaa

纠错
反馈

纠错反馈