하루 하루
[ SharePoint Framework ] 6.Build your first SharePoint client-side web part (Hello World part 1) - 3 본문
[ SharePoint Framework ] 6.Build your first SharePoint client-side web part (Hello World part 1) - 3
san_deul 2020. 6. 2. 05:26[ Web part project structure ]
Visual Studio Code를 사용하여 웹 파트 프로젝트 구조를 탐색하려면 콘솔에서 Ctrl + C를 선택하여 처리를 중단하고
다음 명령을 입력하여 Visual Studio Code에서 웹 파트 프로젝트를 열거 나 즐겨 사용하는 편집기를 사용합니다
code .
비주얼 스튜디오 코드가 설치되어 있으면 해당 디렉토리의 위치가 비쥬얼스튜디오 코드에서 열리게 됩니다.
TypeScript는 SharePoint 클라이언트 측 웹 파트를 작성하기위한 기본 언어입니다.
TypeScript는 일반 JavaScript로 컴파일되는 JavaScript의 형식화 된 슈퍼 세트입니다.
SharePoint 클라이언트 쪽 개발 도구는 TypeScript 클래스, 모듈 및 인터페이스를 사용하여 구축되어 개발자가 강력한 클라이언트 쪽 웹 파트를 작성할 수 있습니다.
다음은 프로젝트의 일부 주요 파일입니다.
Web part class
src \ webparts \ helloworld 폴더의 HelloWorldWebPart.ts는 웹 파트의 기본 진입 점을 정의합니다.
웹 파트 클래스 HelloWorldWebPart는 BaseClientSideWebPart를 확장합니다.
모든 클라이언트 측 웹 파트는 BaseClientSideWebPart 클래스를 확장하여 유효한 웹 파트로 정의해야합니다.
BaseClientSideWebPart는 웹 파트를 작성하는 데 필요한 최소한의 기능을 구현합니다.
이 클래스는 또한 displayMode, 웹 파트 속성, 웹 파트 컨텍스트, 웹 파트 instanceId, 웹 파트 domElement 등과 같은 읽기 전용 속성을 확인하고 액세스하기위한 많은 매개 변수를 제공합니다.
웹 파트 클래스는 HelloWorldWebPartProps 속성 유형을 허용하도록 정의되어 있고,
속성 유형은 HelloWorldWebPart.ts 파일에서 HelloWorldWebPart 클래스 이전의 인터페이스로 정의됩니다.
export interface IHelloWorldWebPartProps {
description: string;
}
이 속성 정의는 웹 파트의 사용자 지정 속성 유형을 정의하는 데 사용되며이 속성은 나중에 속성 창 섹션에서 설명합니다.
Web part render method
웹 파트를 렌더링해야하는 DOM 요소는 render 메소드에서 사용할 수 있습니다.
이 메소드는 해당 DOM 요소 내에 웹 파트를 렌더링하는 데 사용됩니다.
HelloWorld 웹 파트에서 DOM 요소는 DIV로 설정됩니다.
메소드 매개 변수에는 표시 모드 (읽기 또는 편집)와 구성된 웹 파트 특성 (있는 경우)이 포함됩니다.
public render(): void {
this.domElement.innerHTML = `
<div class="${ styles.helloWorld }">
<div class="${ styles.container }">
<div class="${ styles.row }">
<div class="${ styles.column }">
<span class="${ styles.title }">Welcome to SharePoint!</span>
<p class="${ styles.subTitle }">Customize SharePoint experiences using web parts.</p>
<p class="${ styles.description }">${escape(this.properties.description)}</p>
<a href="https://aka.ms/spfx" class="${ styles.button }">
<span class="${ styles.label }">Learn more</span>
</a>
</div>
</div>
</div>
</div>`;
}
이 모델은 웹 파트를 모든 JavaScript 프레임 워크에서 빌드하고 DOM 요소에로드 할 수있을 정도로 유연합니다.
Configure the Web part property pane
구성 속성 창은 HelloWorldWebPart 클래스에 정의되어 있습니다.
getPropertyPaneConfiguration 특성은 특성 분할 창을 정의해야하는 위치입니다.
속성이 정의되면
this.properties. <property-value>
를 사용하여 웹 파트에서 속성에 액세스 할 수 있습니다.
<p class="${ styles.description }">${escape(this.properties.description)}</p>
유효한 문자열을 보장하기 위해 속성 값에 HTML 이스케이프를 수행하고 있습니다.
이제 속성 창에 확인란, 드롭 다운 목록 및 토글과 같은 몇 가지 속성을 추가하겠습니다.
먼저 프레임 워크에서 각 속성 창 필드를 가져옵니다.
1. 파일 맨 위로 스크롤하여 다음에서 가져 오기 섹션에 다음을 추가합니다.
@microsoft/sp-property-pane:
PropertyPaneCheckbox,
PropertyPaneDropdown,
PropertyPaneToggle
import {
IPropertyPaneConfiguration,
PropertyPaneTextField,
PropertyPaneCheckbox,
PropertyPaneDropdown,
PropertyPaneToggle
} from '@microsoft/sp-property-pane';
2. 새 속성을 포함하도록 웹 파트 속성을 업데이트합니다. 필드를 유형이 지정된 개체에 매핑합니다.
3. IHelloWorldWebPartProps 인터페이스를 다음 코드로 바꿉니다.
export interface IHelloWorldWebPartProps {
description: string;
test: string;
test1: boolean;
test2: string;
test3: boolean;
}
4. 파일을 저장합니다.
5. getPropertyPaneConfiguration 메소드를 다음 코드로 바꿉니다.
이 코드는 새 특성 분할 창 필드를 추가하고 각 유형의 오브젝트에 맵핑합니다.
protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
return {
pages: [
{
header: {
description: strings.PropertyPaneDescription
},
groups: [
{
groupName: strings.BasicGroupName,
groupFields: [
PropertyPaneTextField('description', {
label: 'Description'
}),
PropertyPaneTextField('test', {
label: 'Multi-line Text Field',
multiline: true
}),
PropertyPaneCheckbox('test1', {
text: 'Checkbox'
}),
PropertyPaneDropdown('test2', {
label: 'Dropdown',
options: [
{ key: '1', text: 'One' },
{ key: '2', text: 'Two' },
{ key: '3', text: 'Three' },
{ key: '4', text: 'Four' }
]}),
PropertyPaneToggle('test3', {
label: 'Toggle',
onText: 'On',
offText: 'Off'
})
]
}
]
}
]
};
}
6. 웹 파트 속성에 속성을 추가 한 후에는 앞에서 설명 속성에 액세스 한 것과 동일한 방식으로 속성에 액세스 할 수 있습니다.
<p class="${ styles.description }">${escape(this.properties.test)}</p>
속성의 기본값을 설정하려면 웹 파트 manifest's properties 모음을 업데이트해야합니다.
7. HelloWorldWebPart.manifest.json 파일을 열고 속성을 변경합니다.
"properties": {
"description": "HelloWorld",
"test": "Multi-line text field",
"test1": true,
"test2": "2",
"test3": true
}
웹 파트 속성 창에는 이제 해당 속성에 대한 이러한 기본값이 있습니다.
Web part manifest
HelloWorldWebPart.manifest.json 파일은 버전, ID, 표시 이름, 아이콘 및 설명과 같은 웹 파트 메타 데이터를 정의합니다. 모든 웹 파트에는이 매니페스트가 포함되어야합니다.
{
"$schema": "https://developer.microsoft.com/json-schemas/spfx/client-side-web-part-manifest.schema.json",
"id": "fbcf2c6a-7df9-414c-b3f5-37cab6bb1280",
"alias": "HelloWorldWebPart",
"componentType": "WebPart",
// The "*" signifies that the version should be taken from the package.json
"version": "*",
"manifestVersion": 2,
// If true, the component can only be installed on sites where Custom Script is allowed.
// Components that allow authors to embed arbitrary script code should set this to true.
// https://support.office.com/article/Turn-scripting-capabilities-on-or-off-1f2c515f-5d7e-448a-9fd7-835da935584f
"requiresCustomScript": false,
"supportedHosts": ["SharePointWebPart"],
"preconfiguredEntries": [{
"groupId": "5c03119e-3074-46fd-976b-c60198311f70", // Other
"group": { "default": "Other" },
"title": { "default": "HelloWorld" },
"description": { "default": "HelloWorld description" },
"officeFabricIconFontName": "Page",
"properties": {
"description": "HelloWorld",
"test": "Multi-line text field",
"test1": true,
"test2": "2",
"test3": true
}
}]
}
이제 새 속성을 소개 했으므로 다음 명령을 실행하여 로컬 개발 환경에서 웹 파트를 다시 호스팅해야합니다. 또한 이전 변경 사항이 올바르게 적용되었는지 확인합니다.
gulp serve
Preview the web part in SharePoint
SharePoint Workbench는 SharePoint에서 호스팅되어 개발중인 로컬 웹 파트를 미리보고 테스트합니다.
주요 이점은 이제 SharePoint 컨텍스트에서 실행 중이며 SharePoint 데이터와 상호 작용할 수 있다는 것입니다.
1. 다음 URL로 이동합니다. :
https://your-sharepoint-tenant.sharepoint.com/_layouts/workbench.aspx
2. SharePoint Workbench에는 이제 Office 365 Suite 탐색 모음이 있습니다.
3. 캔버스에서 추가 아이콘을 선택하여 도구 상자를 표시하십시오.
이제 도구 상자에 HelloWorldWebPart와 함께 SharePoint Workbench가 호스팅되는 사이트에서
사용 가능한 웹 파트가 표시됩니다.
만약
gulp serve
의 실행을 중지하게 되면 웹파트를 추가할 수 없게 됩니다.
4. 도구 상자에서 HelloWorld를 추가하면, 이제 SharePoint에서 호스팅되는 페이지에서 웹 파트를 실행하게 됩니다.