SharePoint Framework v1.8新功能:使用库组件(Library Component)在webpart间共享代码

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shrenk/article/details/88885833

SharePoint Framework 1.8版本中,在webpart和extension这两种组件之外,又添加了一个新的组件:库组件(Library Component)。库组件的作用是复用代码,将公用的代码提取出来,形成库组件,在其他组件例如webpart和extension中使用。

下面看一下如何创建库组件并且在webpart中引用库中的代码。

首先创建一个文件夹"spfx18library",在文件夹中创建项目。由于这个功能在1.8版本中是preview的功能,所以使用Yeoman创建项目的时候,需要加上--plusbeta。

注意在第四个问题处需要选择Y,将这个库组件全局部署到SharePoint Online中,以便其他组件引用。

在选择组件类型的时候,可以看到在WebPart和Extention之后新增了一个Library,选择Library。然后将库组件命名为SharedLib,完整过程如下:

使用Code打开项目,默认在SharedLibLibrary.ts文件中创建了一个类“SharedLibLibrary”,类中默认创建了一个name方法,我们添加一个新的方法 getCurrentTime()如下所示:

这样代码部分就已经完成了,在控制台中运行gulp bundle命令来构建和捆绑:

扫描二维码关注公众号,回复: 6151562 查看本文章

如果没有错误信息,就可以使用这个代码库组件了。

1,在本地调试中使用:

如何在本地调试中使用刚刚创建的库组件?首先我们需要使用npm link来为库组件创建一个本地的npm link:

默认创建的link的名字是package.json中name属性的值,也就是默认的solution的名字,这里是“spfx-18-library”,默认的版本号是0.0.1。

现在就可以在其他的组件中使用了。创建或者打开另外一个webpart项目(不要在当前库组件的文件夹中创建webpart):

创建新文件夹spfx18libconsummer, 创建如下webpart:

使用Code打开项目,在控制台中执行npm link,来引用之前创建好的代码库:

执行完毕后,可以发现在webpart的node_modules中,添加了我们代码库的文件夹:

然后在webpart中添加引用和代码:

运行gulp serve,在workbench中添加webpart,就可以使用库文件中的getCurrentTime()方法显示当前时间了:

2,如何在SharePoint Online中使用:

首先需要打包这个代码库,在代码库项目控制台运行:

gulp bundle --ship
gulp package-solution --ship

生成.sppkg文件,将这个文件上传到SharePoint App Catalog中。需要选择“Make this solution available to all sites in the organization”。

部署完成之后,如果需要在webpart中使用这个库,需要在webpart项目的package.json文件中引用:

"dependencies": {
    "spfx-18-library": "0.0.1", // here we added the reference to the library
    "@microsoft/sp-core-library": "1.8.0-prbeta.1",
    "@types/webpack-env": "1.13.1",
    "@types/es6-promise": "0.0.33"
},

然后将这个webpart部署到SharePoint App Catelog中即可。这样就可以在多个webpart中共享这个代码库了。如果代码库的代码有更新,只需要重新打包部署代码库,而所有使用代码库的webpart都不需要改动。

关于库组件的补充说明:

  • 在你的SharePoint Online中,只能部署一个库组件的一个版本,不能多版本共存。如果需要多个版本,只能使用不同的库名来区分。
  • 库组件的项目中不能添加其他组件例如webpart等,只能包含库组件。

参考:

https://docs.microsoft.com/en-us/sharepoint/dev/spfx/library-component-overview

https://docs.microsoft.com/en-us/sharepoint/dev/spfx/library-component-tutorial

猜你喜欢

转载自blog.csdn.net/shrenk/article/details/88885833