<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SPFx Archives - Blog IT</title>
	<atom:link href="https://blogit.create.pt/tag/spfx/feed/" rel="self" type="application/rss+xml" />
	<link>https://blogit.create.pt/tag/spfx/</link>
	<description>Create IT blogger community</description>
	<lastBuildDate>Wed, 18 Feb 2026 10:35:14 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>SharePoint Framework (SPFx) Learning Guide</title>
		<link>https://blogit.create.pt/miguelisidoro/2022/05/09/sharepoint-framework-spfx-learning-guide/</link>
					<comments>https://blogit.create.pt/miguelisidoro/2022/05/09/sharepoint-framework-spfx-learning-guide/#respond</comments>
		
		<dc:creator><![CDATA[Miguel Isidoro]]></dc:creator>
		<pubDate>Mon, 09 May 2022 16:50:20 +0000</pubDate>
				<category><![CDATA[SharePoint Online]]></category>
		<category><![CDATA[Microsoft Teams]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[SharePoint Framework]]></category>
		<category><![CDATA[SPFx]]></category>
		<category><![CDATA[Tutorials]]></category>
		<category><![CDATA[TypeScript]]></category>
		<guid isPermaLink="false">https://blogit.create.pt/?p=12678</guid>

					<description><![CDATA[<p>Hello, Are you new to SharePoint or do you just want to learn how to develop SharePoint modern solutions? Then, you came to the right place! This is a guide to help you learn SharePoint Framework (SPFx), a framework to develop SharePoint (and Teams) client-side solutions. SPFx leverages the following technologies: The Basics SharePoint Framework&#160;is&#160;a&#160;page [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/miguelisidoro/2022/05/09/sharepoint-framework-spfx-learning-guide/">SharePoint Framework (SPFx) Learning Guide</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Hello,</p>



<p>Are you new to SharePoint or do you just want to learn how to develop SharePoint modern solutions? Then, you came to the right place!</p>



<p>This is a guide to help you learn SharePoint Framework (SPFx), a framework to develop SharePoint (and Teams) client-side solutions. SPFx leverages the following technologies:</p>



<ul class="wp-block-list">
<li><a href="https://reactjs.org/" target="_blank" rel="noreferrer noopener">React&nbsp;</a>/&nbsp;<a href="https://angular.io/" target="_blank" rel="noreferrer noopener">Angular</a></li>



<li><a href="https://www.typescriptlang.org/" target="_blank" rel="noreferrer noopener">TypeScript</a></li>



<li><a href="https://www.microsoft.com/pt-pt/microsoft-365/sharepoint/collaboration" target="_blank" rel="noreferrer noopener">SharePoint Online</a></li>



<li><a href="https://www.microsoft.com/en-us/microsoft-teams/group-chat-software/" target="_blank" rel="noreferrer noopener">Microsoft Teams</a></li>
</ul>



<p></p>



<h2 class="wp-block-heading">The Basics</h2>



<p><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/sharepoint-framework-overview" target="_blank" rel="noreferrer noopener">SharePoint Framework</a>&nbsp;is&nbsp;a&nbsp;<strong>page and web part model&nbsp;</strong>that provides full support for<strong>&nbsp;client-side SharePoint development</strong>,&nbsp;<strong>easy integration with SharePoint data</strong>, and&nbsp;<strong>extending</strong>&nbsp;<strong>Microsoft Teams.</strong>&nbsp;With the SharePoint Framework, you can use modern web technologies and tools in your preferred development environment to build productive experiences and apps that are responsive and mobile-ready.</p>



<p>The SPFx is the recommended SharePoint customization and extensibility model for developers. Due to tight integration between SharePoint Online, Microsoft Teams, and Microsoft Viva Connections, developers can also use SPFx to customize and extend all these products. In fact, SPFx is the only extensibility and customization option for Viva Connections.</p>



<p>In addition to SharePoint Online, SPFx is supported and can be used to customize SharePoint on-premises deployments going back to SharePoint Server 2016.</p>



<p>With the SharePoint Framework, we can develop:</p>



<ul class="wp-block-list">
<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/overview-client-side-web-parts" target="_blank" rel="noreferrer noopener">Web Parts</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/extensions/overview-extensions" target="_blank" rel="noreferrer noopener">Extensions</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/library-component-overview" target="_blank" rel="noreferrer noopener">Library components</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/viva/get-started/build-first-sharepoint-adaptive-card-extension" target="_blank" rel="noreferrer noopener">Adaptive Card Extensions</a></li>
</ul>



<p><br>Other useful links:</p>



<ul class="wp-block-list">
<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/sharepoint-framework-overview" target="_blank" rel="noreferrer noopener">Overview of the SharePoint Framework (SPFx)</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/toolchain/scaffolding-projects-using-yeoman-sharepoint-generator" target="_blank" rel="noreferrer noopener">Scaffold projects by using Yeoman SharePoint generator</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/tools-and-libraries" target="_blank" rel="noreferrer noopener">SharePoint Framework development tools and libraries</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/toolchain/sharepoint-framework-toolchain" target="_blank" rel="noreferrer noopener">SharePoint Framework toolchain</a></li>



<li><a href="https://pnp.github.io/blog/post/patterns-and-practices-for-spfx-development/" id="https://pnp.github.io/blog/post/patterns-and-practices-for-spfx-development/" target="_blank" rel="noreferrer noopener">Patterns and Practices for SPFx Development</a></li>
</ul>



<h3 class="wp-block-heading">Technology stack</h3>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="650" height="578" src="https://blogit.create.pt/wp-content/uploads/2022/05/sharepoint_framework_logo-1.jpg" alt="" class="wp-image-13616" srcset="https://blogit.create.pt/wp-content/uploads/2022/05/sharepoint_framework_logo-1.jpg 650w, https://blogit.create.pt/wp-content/uploads/2022/05/sharepoint_framework_logo-1-300x267.jpg 300w, https://blogit.create.pt/wp-content/uploads/2022/05/sharepoint_framework_logo-1-472x420.jpg 472w" sizes="(max-width: 650px) 100vw, 650px" /><figcaption class="wp-element-caption">SPFx Technology stack</figcaption></figure>



<h3 class="wp-block-heading">SPFx Development Toolchain</h3>



<figure class="wp-block-image size-full"><img decoding="async" width="815" height="410" src="https://blogit.create.pt/wp-content/uploads/2022/05/spfx-development-toolchain-1-2.png" alt="" class="wp-image-13617" srcset="https://blogit.create.pt/wp-content/uploads/2022/05/spfx-development-toolchain-1-2.png 815w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx-development-toolchain-1-2-300x151.png 300w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx-development-toolchain-1-2-768x386.png 768w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx-development-toolchain-1-2-696x350.png 696w" sizes="(max-width: 815px) 100vw, 815px" /><figcaption class="wp-element-caption">SPFx Development Toolchain</figcaption></figure>



<h2 class="wp-block-heading">TypeScript</h2>



<p><a href="https://www.typescriptlang.org/" target="_blank" rel="noreferrer noopener">TypeScript&nbsp;</a>is the preferred programming language to develop in SPFx. TypeScript is a programming language and maintained by Microsoft and is a superset of JavaScript and adds optional static typing to the language to develop client-side solutions. It is designed for the development of large applications and transpiles to JavaScript to be executed in the browser.</p>



<p>Useful TypeScript concepts:</p>



<ul class="wp-block-list">
<li><a href="https://www.typescriptlang.org/docs/handbook/variable-declarations.html" target="_blank" rel="noreferrer noopener">const</a>&nbsp;&#8211; allows the definition of a variable whose value is not going to be changed. Use this instead of let if the variable value is not going to be changed after its declaration.</li>



<li><a href="https://www.typescriptlang.org/docs/handbook/variable-declarations.html" target="_blank" rel="noreferrer noopener">let</a>&nbsp;&#8211; allows the definition of a variable whose value is going to be changed. Use this instead of const if the variable value is going to be changed after its declaration.</li>



<li><a href="https://www.typescriptlang.org/docs/handbook/variable-declarations.html" target="_blank" rel="noreferrer noopener">var&nbsp;</a>&#8211; allows the definition of a variable whose value is going to be changed. To be&nbsp;<strong>avoided&nbsp;</strong>since variables declared with var are acessible from any scope (scope (function, module, namespace, global)</li>



<li><a href="https://javascript.plainenglish.io/when-to-best-use-type-class-or-interface-in-typescript-73bf66de19e9" target="_blank" rel="noreferrer noopener">type</a>&nbsp;&#8211; allows the definition of a data class without any business logic or methods, just data. It can be also useful to avoid the usage of magic strings in the code.</li>



<li><a href="https://javascript.plainenglish.io/when-to-best-use-type-class-or-interface-in-typescript-73bf66de19e9" target="_blank" rel="noreferrer noopener">enum</a>&nbsp;&#8211; allows the definition of a enumeration</li>



<li><a href="https://javascript.plainenglish.io/when-to-best-use-type-class-or-interface-in-typescript-73bf66de19e9" target="_blank" rel="noreferrer noopener">interface&nbsp;</a>&#8211; allows the definition of a interface that can then be implemented by a concret class.</li>



<li><a href="https://javascript.plainenglish.io/when-to-best-use-type-class-or-interface-in-typescript-73bf66de19e9" target="_blank" rel="noreferrer noopener">class</a>&nbsp;&#8211; allows the definition of a class that optionally implements an interface</li>



<li><a href="https://www.typescriptlang.org/docs/handbook/2/classes.html" target="_blank" rel="noreferrer noopener">extends&nbsp;</a>&#8211; when used, it allows a class to inherit from another class</li>



<li><a href="https://www.typescriptlang.org/docs/handbook/modules.html#export" target="_blank" rel="noreferrer noopener">export&nbsp;</a>&#8211;&nbsp;allows the export<strong>&nbsp;</strong>of functions, variables, interfaces and classes that can be imported with the import statement</li>



<li><a href="https://www.typescriptlang.org/docs/handbook/modules.html#import" target="_blank" rel="noreferrer noopener">import</a>&nbsp;&#8211; allows the import of functions, variables, interfaces and classes exported with the export statement</li>
</ul>



<p>Useful links:</p>



<ul class="wp-block-list">
<li><a href="https://www.youtube.com/watch?v=ahCwqrYpIuM" target="_blank" rel="noreferrer noopener">TypeScript &#8211; The Basics (video)</a></li>



<li><a href="https://www.typescriptlang.org/docs/" target="_blank" rel="noreferrer noopener">The starting point for learning TypeScript</a></li>



<li><a href="https://www.typescriptlang.org/docs/handbook/typescript-from-scratch.html" target="_blank" rel="noreferrer noopener">TypeScript for the New Programmer</a></li>



<li><a href="https://www.tutorialsteacher.com/typescript" target="_blank" rel="noreferrer noopener">TypeScript Tutorials</a></li>



<li><a href="https://github.com/labs42io/clean-code-typescript" target="_blank" rel="noreferrer noopener">Clean Code concepts adapted for TypeScript</a></li>
</ul>



<p></p>



<h2 class="wp-block-heading">React</h2>



<p><a href="https://reactjs.org/" target="_blank" rel="noreferrer noopener">React </a>is a JavaScript library for building user interfaces and is at the core of SPFx to build advanced applications. </p>



<ul class="wp-block-list">
<li><strong>Declarative:</strong>&nbsp;React makes it painless to create interactive UIs. Design simple views for each state in your application and React will efficiently update and render just the right components when your data changes. Declarative views make your code more predictable, simpler to understand, and easier to debug.</li>



<li><strong>Component-Based:</strong>&nbsp;Build encapsulated components that manage their state, then compose them to make complex UIs. Since component logic is written in JavaScript instead of templates, you can easily pass rich data through your app and keep the state out of the DOM.</li>



<li><strong>Learn Once, Write Anywhere:</strong>&nbsp;We don&#8217;t make assumptions about the rest of your technology stack, so you can develop new features in React without rewriting existing code. React can also render on the server using Node and power mobile apps using&nbsp;<a href="https://reactnative.dev/" target="_blank" rel="noreferrer noopener">React Native</a>.</li>
</ul>



<p>Useful links:</p>



<ul class="wp-block-list">
<li><a href="https://reactjs.org" target="_blank" rel="noreferrer noopener">React Official Web Site</a></li>



<li><a href="https://reactjs.org/tutorial/tutorial.html">Tutorial: Intro to React</a></li>



<li><a href="https://reactjs.org/docs/react-component.html#the-component-lifecycle" target="_blank" rel="noreferrer noopener">React Component LifeCycle</a></li>



<li><a href="https://laurakokkarinen.com/how-to-get-started-with-react-for-building-advanced-spfx-solutions/" target="_blank" rel="noreferrer noopener">How to get started with React for building advanced SPFx solutions</a></li>



<li><a href="https://global-sharepoint.com/sharepoint-online/sharepoint-online-crud-operations-using-spfx-reactjs-framework/" target="_blank" rel="noreferrer noopener">SharePoint Online: CRUD operations using SPFx ReactJS framework</a></li>



<li><a href="https://kentcdodds.com/blog/how-to-react" target="_blank" rel="noreferrer noopener">How to React ⚛️</a></li>



<li><a href="https://developer.microsoft.com/en-us/fluentui" target="_blank" rel="noreferrer noopener">Fluent UI (Microsoft Components for Microsoft 365 Applications)</a></li>



<li><a href="https://reactjs.org/docs/lists-and-keys.html" target="_blank" rel="noreferrer noopener">React: Lists and Keys</a></li>



<li><a href="https://www.sitepoint.com/implement-memoization-in-react-to-improve-performance/" target="_blank" rel="noreferrer noopener">How to Implement Memoization in React to Improve Performance</a></li>
</ul>



<p>To help developers to build advanced SPFx solutions, there are a lot of React controls, either developed by Microsoft such as <a href="https://developer.microsoft.com/en-us/fluentui" target="_blank" rel="noreferrer noopener">Fluent UI</a> or by communities such as the <a href="https://pnp.github.io/" target="_blank" rel="noreferrer noopener">PnP community</a>.</p>



<p></p>



<h2 class="wp-block-heading">PnP JS</h2>



<p><a href="https://pnp.github.io/pnpjs/">PnP JS</a>&nbsp;is a NPM package that simplifies interaction with SharePoint Online and Microsoft Graph.</p>



<p>Useful links:</p>



<ul class="wp-block-list">
<li><a href="https://pnp.github.io/pnpjs/sp/items/">Working with SharePoint List Items</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/guidance/use-sp-pnp-js-with-spfx-web-parts">Use @pnp/sp (PnPJS) library with SharePoint Framework web parts</a></li>



<li><a href="https://ravichandran.blog/2020/06/24/a-complete-guide-to-getting-and-setting-fields-value-using-pnp-js-in-spfx/">A Complete Guide to Getting and Setting Fields Value using PnP JS in SPFx</a></li>



<li><a href="https://pnp.github.io/pnpjs/packages/#graph">Using PnP JS with Microsoft Graph</a></li>



<li><a href="https://pnp.github.io/#sdks" target="_blank" rel="noreferrer noopener">PnP SDKs</a></li>
</ul>



<p></p>



<h2 class="wp-block-heading">Repositories</h2>



<p>Here are some of the most useful repositories to start learning SharePoint Framework:</p>



<ul class="wp-block-list">
<li><a href="https://github.com/pnp" target="_blank" rel="noreferrer noopener">Microsoft 365 Community</a></li>



<li><a href="https://github.com/orgs/pnp/repositories?q=spfx&amp;type=all&amp;language=&amp;sort=%20-&nbsp;" target="_blank" rel="noreferrer noopener">Microsoft 365 Community Repositories</a></li>



<li><a href="https://github.com/pnp/sp-dev-fx-webparts - pnp/sp-dev-fx-webparts" target="_blank" rel="noreferrer noopener">SharePoint Framework web part, Teams tab, personal app, app page samples</a></li>



<li><a href="https://github.com/pnp/sp-dev-fx-controls-react%20-%20pnp/sp-dev-fx-controls-react" target="_blank" rel="noreferrer noopener">Reusable React controls for SPFx solutions</a></li>



<li><a href="https://github.com/pnp/sp-dev-fx-webparts" target="_blank" rel="noreferrer noopener">sp-dev-fx-webparts</a></li>



<li><a href="https://github.com/pnp/sp-dev-fx-extensions" target="_blank" rel="noreferrer noopener">pnp/sp-dev-fx-extensions</a></li>



<li><a href="https://github.com/pnp/sp-dev-fx-property-controls" target="_blank" rel="noreferrer noopener">pnp/sp-dev-fx-property-controls</a></li>



<li><a href="https://github.com/pnp/sp-dev-fx-aces" target="_blank" rel="noreferrer noopener">pnp/sp-dev-fx-aces</a></li>



<li><a href="https://devblogs.microsoft.com/microsoft365dev/announcing-new-microsoft-365-unified-sample-gallery-with-more-than-1000-samples/" target="_blank" rel="noreferrer noopener">Microsoft 365 Unified Sample Gallery with more than 1000 samples</a></li>
</ul>



<p></p>



<h2 class="wp-block-heading">Concepts / Tooling</h2>



<h3 class="wp-block-heading">Core SPFx Concepts</h3>



<ul class="wp-block-list">
<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/tools-and-libraries#javascript-frameworks" target="_blank" rel="noreferrer noopener">JavaScript frameworks</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/tools-and-libraries#nodejs" target="_blank" rel="noreferrer noopener">Node.js</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/tools-and-libraries#node-package-manager-npm" target="_blank" rel="noreferrer noopener">NPM (Node Package Manager)</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/tools-and-libraries#yeoman-generators" target="_blank" rel="noreferrer noopener">Yeoman</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/tools-and-libraries#gulp-task-runner" target="_blank" rel="noreferrer noopener">Gulp</a></li>



<li><a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/tools-and-libraries#webpack" target="_blank" rel="noreferrer noopener">WebPack</a></li>
</ul>



<h3 class="wp-block-heading">NPM Packages</h3>



<p>SharePoint client-side development tools use the&nbsp;<a href="https://www.npmjs.com/" target="_blank" rel="noreferrer noopener">npm</a>&nbsp;package manager, like&nbsp;<a href="https://www.nuget.org/" target="_blank" rel="noreferrer noopener">NuGet</a>, to manage dependencies and other required JavaScript helpers. npm is typically included as part of Node.js setup.</p>



<p>Package installation modes:</p>



<ul class="wp-block-list">
<li><strong>npm install @package</strong> &#8211; installs the package</li>



<li><strong>npm install @package &#8211;save</strong> &#8211; installs the package and updates package.json automatically (dependencies section)</li>



<li><strong>npm install @package@version &#8211;save-dev </strong>&#8211; installs the package and updates package.json automatically (devDependencies section)</li>



<li><strong>npm install @package@version &#8211;save </strong>&#8211; installs the package with the specified version and updates package.json automatically (dependencies section)</li>



<li><strong>npm install @package@version &#8211;save-dev </strong>&#8211; installs the package with the specified version and updates package.json automatically (devDependencies section)</li>
</ul>



<p>Useful npm packages to include in a SPFx solution:</p>



<ul class="wp-block-list">
<li><strong><strong>npm install gulp yo @microsoft/generator-sharepoint@&lt;spfx_version&gt; &#8211;global</strong></strong>
<ul class="wp-block-list">
<li><strong>   Example: npm install gulp yo @microsoft/generator-sharepoint@1.15.2 &#8211;global</strong></li>
</ul>
</li>



<li><strong>npm install @microsoft/microsoft-graph-types &#8211;save</strong></li>



<li><strong>npm install @pnp/sp &#8211;save</strong></li>



<li><strong>npm install @pnp/graph &#8211;save</strong></li>



<li><strong>npm install @fluentui/react &#8211;save</strong></li>



<li><strong>npm install @pnp/spfx-controls-react &#8211;save</strong></li>



<li><strong>npm install @pnp/spfx-property-controls &#8211;save</strong></li>



<li><strong>npm install localforage &nbsp;&#8211;save</strong></li>



<li><strong>npm install @luudjanssen/localforage-cache &#8211;save</strong></li>



<li><strong>npm install spfx-fast-serve -g</strong></li>



<li><strong>npm install -g pnpm</strong></li>
</ul>



<h3 class="wp-block-heading">Gulp Commands</h3>



<ul class="wp-block-list">
<li><strong>gulp clean</strong> &#8211; cleans the solution. Cleans the dist and temp folders from the solution</li>



<li><strong>gulp trust-dev-cert</strong> &#8211; installs the development certificate</li>



<li><strong>gulp build </strong>&#8211; builds the solution, tranforms TypeScript into JavaScript</li>



<li><strong>gulp bundle </strong>&#8211; bundles the solution and minimizes CSS and JS (in debug mode)</li>



<li><strong>gulp bundle &#8211;ship</strong> &#8211; bundles the solution and minimizes CSS and JS for deployment in SharePoint in production mode (release mode)</li>



<li><strong>gulp package-solution</strong> &#8211; generates package (.sppkg file) but to run in debug mode</li>



<li><strong>gulp package-solution &#8211;ship</strong> &#8211; generates package (.sppkg file) to run in production mode</li>



<li><strong>gulp serve</strong> &#8211; launches SharePoint Workbench to test web parts in debug mode</li>



<li><strong>gulp serve &#8211;nobrowser</strong> &#8211; allows testing web parts in debug mode but without launching SharePoint Workbench</li>
</ul>



<p></p>



<h2 class="wp-block-heading">SPFx Development Environment</h2>



<h3 class="wp-block-heading">Setup Development Environment</h3>



<p>To <a href="https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-development-environment" target="_blank" rel="noreferrer noopener">setup your development environment</a>, run the following commands from the command prompt:</p>



<ul class="wp-block-list">
<li>npm install gulp-cli yo @microsoft/generator-sharepoint &#8211;global</li>



<li>npm install webpack &#8211;global</li>



<li>npm install &#8211;save-dev webpack</li>



<li>gulp trust-dev-cert</li>
</ul>



<h3 class="wp-block-heading">Node Version Manager (nvm)</h3>



<p>Node Version Manager (NVM) allows developers to install multiple versions of node. This can be useful when working with different SPFx versions that use different versions of Node.</p>



<p>To download NVM, click <a href="https://github.com/coreybutler/nvm-windows/releases" target="_blank" rel="noreferrer noopener">here</a>.</p>



<h4 class="wp-block-heading">Install Node using NVM</h4>



<p>After installing NVM, to install a node version use the following command:</p>



<p>nvm install &lt;node_version&gt;. Example: nvm install 14.19.1</p>



<h4 class="wp-block-heading">Switch between versions of Node</h4>



<p>If you have multiple versions of Node, you can switch between them using the following command:</p>



<p>nvm use &lt;node_version&gt;. Example: nvm use 12.22.10</p>



<p>To have a full list of the installed node versions, run &#8220;nvm list&#8221;.</p>



<h3 class="wp-block-heading">SPFx Fast Serve</h3>



<p>If you have a big SPFx solution, gulp serve can take a lot of time, especially if you want to rapidly test your developments. SPFx Fast Serve is a command line utility, which modifies your SharePoint Framework solution, so that it runs continuous serve command as fast as possible. To know more, click <a href="https://github.com/s-KaiNet/spfx-fast-serve" target="_blank" rel="noreferrer noopener">here</a>.&nbsp;</p>



<p>Here is a comparison between gulp serve and SPFx Fast Serve (times depend on hardware, environment). The times listed below are &#8220;refresh&#8221; time (the time needed to compile your project when you change a file and start refreshing a page in a browser):</p>



<figure class="wp-block-table"><table><thead><tr><th></th><th>gulp serve</th><th>spfx-fast-serve</th></tr></thead><tbody><tr><td>Default &#8220;Hello World&#8221;<br>React web part</td><td>3-5 sec</td><td>0.1-0.2 sec</td></tr><tr><td><a href="https://github.com/microsoft-search/pnp-modern-search">PnP Modern Search solution</a></td><td>28-34 sec</td><td>2-4 sec</td></tr><tr><td><a href="https://github.com/SharePoint/sp-starter-kit">SP Starter Kit solution</a>&nbsp;(v1)</td><td>40-50 sec</td><td>2-3 sec</td></tr></tbody></table></figure>



<p>This is a must have for every SharePoint Framework Developer!</p>



<h3 class="wp-block-heading">Recommended Visual Studio Code Extensions</h3>



<ul class="wp-block-list">
<li><a href="https://marketplace.visualstudio.com/items?itemName=formulahendry.auto-rename-tag">Auto Rename Tag</a></li>



<li><a href="https://www.tabnine.com/install/vscode">Tabnine</a></li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=vscode-icons-team.vscode-icons">VSCode icons</a></li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=CoenraadS.bracket-pair-colorizer">Bracket Pair Colorizer</a>&nbsp;</li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode">Visual Code IntelliCode</a>&nbsp;</li>



<li><a href="https://www.sonarlint.org/vscode">SonarLint for Visual Studio Code</a>&nbsp;</li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode.PowerShell">PowerShell</a>&nbsp;</li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer">Live Server</a></li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=wix.glean">Glean</a></li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=rangav.vscode-thunder-client" target="_blank" rel="noreferrer noopener">Thunder Client</a></li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=eliostruyf.spfx-snippets" target="_blank" rel="noreferrer noopener">SPFx Snippets</a></li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens" target="_blank" rel="noreferrer noopener">GitLens</a></li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=Gruntfuggly.todo-tree" target="_blank" rel="noreferrer noopener">Todo Tree</a></li>



<li><a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint" target="_blank" rel="noreferrer noopener">ESLint</a></li>
</ul>



<p></p>



<h2 class="wp-block-heading">SPFx Quick Start</h2>



<p>The most common development component in SPFx is the web part. To better understand how to create your first web part, read&nbsp;<a href="https://laurakokkarinen.com/how-to-get-started-with-react-for-building-advanced-spfx-solutions/" target="_blank" rel="noreferrer noopener">this article</a>. In SPFx client-side web parts, we have the following components:</p>



<ul class="wp-block-list">
<li>Web part main component &#8211; acts as a container to the React component that has the main logic. In this example, we have a web part class called&nbsp;<strong>BirthdaysWorkAnniversariesNewCollaboratorsWebPart&nbsp;</strong>that renders the&nbsp;<strong>BirthdaysWorkAnniversariesNewCollaborators&nbsp;</strong>React component that has the web part main logic.</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="532" src="https://blogit.create.pt/wp-content/uploads/2022/05/spfx_webpart-1024x532.png" alt="" class="wp-image-12693" srcset="https://blogit.create.pt/wp-content/uploads/2022/05/spfx_webpart-1024x532.png 1024w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_webpart-300x156.png 300w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_webpart-768x399.png 768w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_webpart-696x362.png 696w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_webpart-1068x555.png 1068w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_webpart-808x420.png 808w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_webpart.png 1079w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>React component associated with the web part. This file has a&nbsp;<strong>render&nbsp;</strong>method responsible for the rendering of the web part UI and uses two major React concepts:&nbsp;<strong>props&nbsp;</strong>supplied by the web part that allows users to configure the web part behavior and&nbsp;<strong>state</strong>&nbsp;that also allows to control how the the web part is rendered. The main difference between props and state is that state can be changed and props can&#8217;t (in the code they are readonly). In the example below, we have the&nbsp;<strong>BirthdaysWorkAnniversariesNewCollaborators&nbsp;</strong>React component that was called by the&nbsp;<strong>BirthdaysWorkAnniversariesNewCollaboratorsWebPart&nbsp;</strong>web part.</li>
</ul>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="694" src="https://blogit.create.pt/wp-content/uploads/2022/05/spfx_component-1024x694.png" alt="" class="wp-image-12694" srcset="https://blogit.create.pt/wp-content/uploads/2022/05/spfx_component-1024x694.png 1024w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_component-300x203.png 300w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_component-768x521.png 768w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_component-696x472.png 696w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_component-1068x724.png 1068w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_component-619x420.png 619w, https://blogit.create.pt/wp-content/uploads/2022/05/spfx_component.png 1103w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<ul class="wp-block-list">
<li>Other associated files such as:
<ul class="wp-block-list">
<li>Service classes to get data from SharePoint or Microsoft Graph for instance</li>



<li>Data object classes (models)</li>



<li>Helper classes</li>



<li>etc</li>
</ul>
</li>
</ul>



<p></p>



<h2 class="wp-block-heading">SPFx Tutorials</h2>



<h3 class="wp-block-heading">Getting Started with SPFx</h3>



<ul class="wp-block-list">
<li><a href="https://www.youtube.com/watch?v=6WTtjXP5yW4&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq&amp;index=3" target="_blank" rel="noreferrer noopener">SharePoint Framework Tutorial 1 &#8211; HelloWorld WebPart</a></li>



<li><a href="https://www.youtube.com/watch?v=5M3zDpgxIMs&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq&amp;index=4" target="_blank" rel="noreferrer noopener">SharePoint Framework Tutorial 2 &#8211; HelloWorld, Talking to SharePoint</a></li>



<li><a href="https://www.youtube.com/watch?v=FkFg32NSTM0&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq&amp;index=5" target="_blank" rel="noreferrer noopener">SharePoint Framework Tutorial 3 &#8211; HelloWorld, Serving in SharePoint Page</a></li>



<li><a href="https://www.youtube.com/watch?v=N-KowN-UwTM&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq&amp;index=6" target="_blank" rel="noreferrer noopener">SharePoint Framework Tutorial 4 &#8211; HelloWorld, Deploy to Office 365 CDN</a></li>



<li><a href="https://www.youtube.com/watch?v=tHzbh5JoC-A&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq&amp;index=8" target="_blank" rel="noreferrer noopener">SharePoint Framework Tutorial &#8211; Using Microsoft Graph APIs</a></li>



<li><a href="https://www.youtube.com/watch?v=JoTAC2i-XeU&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq&amp;index=8" target="_blank" rel="noreferrer noopener">SharePoint Framework Tutorial &#8211; Surfacing your solution as a Microsoft Teams tab</a></li>



<li><a href="https://www.youtube.com/watch?v=kNrYd8nYaZY&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq&amp;index=10" target="_blank" rel="noreferrer noopener">SharePoint Framework Tutorial &#8211; Using Office UI Fabric React Components</a></li>



<li><a href="https://www.youtube.com/watch?v=09uoG6Voeew&amp;list=PLR9nK3mnD-OXvSWvS2zglCzz4iplhVrKq&amp;index=11" target="_blank" rel="noreferrer noopener">SharePoint Framework Tutorial &#8211; Provisioning SharePoint assets from SPFx solution</a></li>



<li><a href="https://www.youtube.com/watch?v=8BATz6LD6tA" target="_blank" rel="noreferrer noopener">SharePoint Framework Tutorial &#8211; Create a Full Width Web Part Page with SPFx</a></li>



<li><a href="https://www.youtube.com/watch?v=oNChcluMrm8" target="_blank" rel="noreferrer noopener">Debugging SharePoint Framework solutions in Visual Studio Code</a></li>



<li><a href="https://docs.microsoft.com/en-us/learn/modules/sharepoint-spfx-spcontent/" target="_blank" rel="noreferrer noopener">Work with SharePoint Content using the SharePoint Framework</a></li>
</ul>



<h3 class="wp-block-heading">Developing SPFx Extensions</h3>



<ul class="wp-block-list">
<li><a href="https://www.youtube.com/watch?v=DnfRIl2YN8g&amp;list=PLR9nK3mnD-OXtWO5AIIr7nCR3sWutACpV&amp;index=2" target="_blank" rel="noreferrer noopener">SharePoint Framework Extensions Tutorial 1 &#8211; Build your first Extension</a></li>



<li><a href="https://www.youtube.com/watch?v=Wm1PG8U5bSw&amp;list=PLR9nK3mnD-OXtWO5AIIr7nCR3sWutACpV&amp;index=2" target="_blank" rel="noreferrer noopener">SharePoint Framework Extensions Tutorial 2 &#8211; Using page placeholders from Application Customizer</a></li>



<li><a href="https://www.youtube.com/watch?v=tReoZGtAYB4&amp;list=PLR9nK3mnD-OXtWO5AIIr7nCR3sWutACpV&amp;index=3" target="_blank" rel="noreferrer noopener">SharePoint Framework Extensions Tutorial 3 &#8211; Deploy your extension to site collection</a></li>



<li><a href="https://www.youtube.com/watch?v=xsZbRliakyM&amp;list=PLR9nK3mnD-OXtWO5AIIr7nCR3sWutACpV&amp;index=4" target="_blank" rel="noreferrer noopener">SharePoint Framework Extensions Tutorial 4 &#8211; Hosting extension from Office 365 CDN</a></li>



<li><a href="https://www.youtube.com/watch?v=mBZ7Sq_KfDA&amp;list=PLR9nK3mnD-OXtWO5AIIr7nCR3sWutACpV&amp;index=5" target="_blank" rel="noreferrer noopener">SharePoint Framework Extensions Tutorial &#8211; Build your first Field Customizer</a></li>



<li><a href="https://www.youtube.com/watch?v=uaUGtLrNbRA&amp;list=PLR9nK3mnD-OXtWO5AIIr7nCR3sWutACpV&amp;index=6" target="_blank" rel="noreferrer noopener">SharePoint Framework Extensions Tutorial &#8211; Build your first ListView Command Set</a></li>
</ul>



<h3 class="wp-block-heading">SharePoint CRUD Operations with SPFx</h3>



<ul class="wp-block-list">
<li><a href="https://www.c-sharpcorner.com/article/sharepoint-list-items-crud-operations-demo-using-pnpjs-in-react-based-spfx-webpa/" target="_blank" rel="noreferrer noopener">SharePoint List Items CRUD Operations Demo Using PnPJS In React based SPFx Webpart</a></li>



<li><a href="https://github.com/miguelisidoro/SharePoint/tree/master/SPFx/react-detailslist" target="_blank" rel="noreferrer noopener">SharePoint CRUD Sample with Details List Fluent UI Control and a SharePoint List</a></li>
</ul>



<h3 class="wp-block-heading">Graph API</h3>



<ul class="wp-block-list">
<li><a href="https://laurakokkarinen.com/the-ultimate-beginners-guide-to-microsoft-graph/" target="_blank" rel="noreferrer noopener">The Ultimate Beginner&#8217;s Guide to Microsoft Graph</a></li>
</ul>



<h2 class="wp-block-heading">Related Articles</h2>



<p>To learn why your business should migrate to SharePoint Online and Office 365, click <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/07/29/why-your-business-should-migrate-to-sharepoint-online-and-office-365-the-value-offer-part-1/" target="_blank">here</a> and <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/07/29/why-your-business-should-migrate-to-sharepoint-online-and-office-365-the-value-offer-part-2/" target="_blank">here</a>.</p>



<p>If you want to learn how you can rename a modern SharePoint site, click <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/09/23/how-to-rename-a-modern-sharepoint-site-url-in-office-365/" target="_blank">here</a>.</p>



<p>If you want to learn how to save time time scheduling your meetings, click <a aria-label="undefined (opens in a new tab)" href="https://blogit.create.pt////miguelisidoro/2020/04/12/save-time-scheduling-microsoft-teams-meetings-using-findtime/" target="_blank" rel="noreferrer noopener">here</a>.</p>



<p>If you want to learn how to enable Microsoft Teams Attendance List Download, click <a aria-label="undefined (opens in a new tab)" href="https://blogit.create.pt////miguelisidoro/2020/09/20/how-to-enable-teams-meeting-attendance-list-download-in-microsoft-365/" target="_blank" rel="noreferrer noopener">here</a>.</p>



<p>If you want to learn how to create a dynamic org-wide team in Microsoft Teams with all active employees, click <a href="https://blogit.create.pt/miguelisidoro/2020/09/21/how-to-create-a-dynamic-team-in-microsoft-teams-with-all-active-employees-in-microsoft-365/" target="_blank" rel="noreferrer noopener">here</a>.</p>



<p>If you want to modernize your SharePoint classic root site to a modern SharePoint site, click <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/08/27/how-to-modernize-your-tenant-root-site-collection-in-office-365-using-invoke-spositeswap/" target="_blank">here</a>.</p>



<p>If you are a SharePoint administrator or a SharePoint developer who wants to learn more about how to install a SharePoint 2019 farm in an automated way using PowerShell, I invite you to click <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2018/12/09/how-to-install-a-sharepoint-2019-farm-using-powershell-and-autospinstaller-part-1/" target="_blank">here</a> and <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2018/12/09/how-to-install-a-sharepoint-2019-farm-using-powershell-and-autospinstaller-part-2/" target="_blank">here</a>.</p>



<p>If you learn how to greatly speed up your SharePoint farm update process to ensure your SharePoint farm keeps updated and you stay one step closer to start your move to the cloud, click&nbsp;<a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/05/02/how-to-speed-up-the-installation-of-sharepoint-cumulative-updates-using-powershell-step-by-step/" target="_blank">here</a>.</p>



<p>If you prefer to use the traditional method to update your farm and want to learn all the steps and precautions necessary to successfully keep your SharePoint farm updated, click <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/04/08/how-to-install-sharepoint-cumulative-updates-in-a-sharepoint-farm-step-by-step/" target="_blank">here</a>.</p>



<p>If you want to learn how to upgrade a SharePoint 2013 farm to SharePoint 2019, click <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/03/06/how-to-upgrade-from-sharepoint-2013-to-sharepoint-2019-step-by-step-part-1/" target="_blank">here </a>and <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/03/06/how-to-upgrade-from-sharepoint-2013-to-sharepoint-2019-step-by-step-part-2/" target="_blank">here</a>.</p>



<p>If SharePoint 2019 is still not an option, you can learn more about how to install a SharePoint 2016 farm in an automated way using PowerShell, click <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2018/07/28/how-to-install-a-sharepoint-2016-farm-using-powershell-and-autospinstaller-part-1/" target="_blank">here</a>&nbsp;and&nbsp;<a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2018/07/28/how-to-install-a-sharepoint-2016-farm-using-powershell-and-autospinstaller-part-2/" target="_blank">here</a>.</p>



<p>If you want to learn how to upgrade a SharePoint 2010 farm to SharePoint 2016, click <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/02/04/sharepoint-upgrade-upgrading-a-sharepoint-2010-farm-to-sharepoint-2016-step-by-step-part-1/" target="_blank">here </a>and <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/02/04/sharepoint-upgrade-upgrading-a-sharepoint-2010-farm-to-sharepoint-2016-step-by-step-part-2/" target="_blank">here</a>.</p>



<p>If you are new to SharePoint and Office 365 and want to learn all about it, take a look at these <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2018/10/17/sharepoint-and-office-365-learning-resources/" target="_blank">learning resources</a>.</p>



<p>If you are work in a large organization who is using Office 365 or thinking to move to Office 365 and is considering between a single or multiple Office 365 tenants, I invite you to read <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2019/01/07/pros-and-cons-of-single-tenant-vs-multiple-tenants-in-office-365/" target="_blank">this article</a>.</p>



<p>If you want to know all about the latest SharePoint and Office 365 announcements from Ignite and some more recent announcements, including Microsoft Search, What’s New to Build a Modern Intranet with SharePoint in Office 365, Deeper Integration between Microsoft Teams and SharePoint and the latest news on SharePoint development, click <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2018/11/21/whats-new-for-sharepoint-and-office-365-after-microsoft-ignite-2018/" target="_blank">here</a>.</p>



<p>If your organization is still not ready to go all in to SharePoint Online and Office 365, a hybrid scenario may be the best choice. SharePoint 2019 RTM was recently announced and if you to learn all about SharePoint 2019 and all its features, click <a rel="noreferrer noopener" href="https://blogit.create.pt////miguelisidoro/2018/11/01/meet-the-new-modern-sharepoint-server-sharepoint-2019-rtm-is-here/" target="_blank">here</a>.</p>



<p>Happy SharePointing!</p>
<p>The post <a href="https://blogit.create.pt/miguelisidoro/2022/05/09/sharepoint-framework-spfx-learning-guide/">SharePoint Framework (SPFx) Learning Guide</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/miguelisidoro/2022/05/09/sharepoint-framework-spfx-learning-guide/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Multimedia Gallery &#8211; SPFx App</title>
		<link>https://blogit.create.pt/joaomendes/2019/06/25/building-multimedia-gallery-with-spfx/</link>
					<comments>https://blogit.create.pt/joaomendes/2019/06/25/building-multimedia-gallery-with-spfx/#respond</comments>
		
		<dc:creator><![CDATA[João Mendes]]></dc:creator>
		<pubDate>Tue, 25 Jun 2019 22:59:16 +0000</pubDate>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[Office 365]]></category>
		<category><![CDATA[sharepoint]]></category>
		<category><![CDATA[SPFx]]></category>
		<guid isPermaLink="false">https://blogit.create.pt/?p=10424</guid>

					<description><![CDATA[<p>The Requirements The requirement was to show images and videos in a grid, with the possibility to download images and see all the files in carousel. The images and videos are located in a SharePoint Online library and the size of the files are large, 12MB or plus for image and 40MB or plus for [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/joaomendes/2019/06/25/building-multimedia-gallery-with-spfx/">Multimedia Gallery &#8211; SPFx App</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h3 class="wp-block-heading">The Requirements</h3>



<p>The requirement was to show images and videos in a grid, with the possibility to download images and see all the files in carousel.</p>



<p>The images and videos are located in a SharePoint Online library and the size of the files are large, 12MB or plus for image and 40MB or plus for videos.</p>



<h3 class="wp-block-heading">The Challenge</h3>



<p>The challenge was to build an application, which was easy to use and works on any device, and was quick to view files.</p>



<h3 class="wp-block-heading">The Solution</h3>



<p>For the building of the application for the UI I used the components of the <a rel="noreferrer noopener" href="https://developer.microsoft.com/en-us/fabric#/" target="_blank" style="color: blue">Office UI Faric </a>and for accessing the data, reading files from the SharePoint library, I used the <a href="https://pnp.github.io/pnpjs/" style="color: blue">PnPjs</a> library. </p>



<p>To create the thumbnails of the images for the grid, I used the <a href="https://docs.microsoft.com/en-us/graph/api/driveitem-list-thumbnails?view=graph-rest-1.0&amp;tabs=cs" target="_blank" rel="noreferrer noopener" aria-label="Microsoft Graph API's (opens in a new tab)" style="color: white">Microsoft Graph API&#8217;s</a> to resize the images. These API&#8217;s allows you to read several pre-defined formats or set the size we want. </p>



<p>Here is an excellent article from <a rel="noreferrer noopener" aria-label="@VelinGeorgiev (opens in a new tab)" href="https://twitter.com/VelinGeorgiev" target="_blank" style="color: blue">@VelinGeorgiev</a> that explains how to use these Graph API&#8217;s  <a href="https://blog.velingeorgiev.com/resize-sharepoint-image-by-using-microsoft-graph-api" target="_blank" rel="noreferrer noopener" aria-label="https://blog.velingeorgiev.com/resize-sharepoint-image-by-using-microsoft-graph-api  (opens in a new tab)" style="color: blue">https://blog.velingeorgiev.com/resize-sharepoint-image-by-using-microsoft-graph-api </a></p>



<p>For Carousel I used a  React Component  called React-Slick and for the rendering of the video, the component React-Video. All files used in Carousel, are loaded in lazy mode, progressively. </p>



<p>The Web Part has as properties:</p>



<ul class="wp-block-list"><li>Site Url &#8211; Url of site to get libraries</li><li>List of libraries, by default is select the first</li><li>number of files to load, maximum is 200</li></ul>



<h3 class="wp-block-heading">The Application</h3>



<figure class="wp-block-image"><img decoding="async" width="1440" height="900" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.14.png?fit=696%2C435&amp;ssl=1" alt="" class="wp-image-10427" srcset="https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.14.png 1440w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.14-300x188.png 300w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.14-768x480.png 768w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.14-1024x640.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.14-696x435.png 696w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.14-1068x668.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.14-672x420.png 672w" sizes="(max-width: 1440px) 100vw, 1440px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1440" height="900" src="https://i0.wp.com/blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.36.png?fit=696%2C435&amp;ssl=1" alt="" class="wp-image-10428" srcset="https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.36.png 1440w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.36-300x188.png 300w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.36-768x480.png 768w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.36-1024x640.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.36-696x435.png 696w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.36-1068x668.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/06/Screenshot-2019-06-24-at-18.50.36-672x420.png 672w" sizes="(max-width: 1440px) 100vw, 1440px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1708" height="925" src="https://i0.wp.com/blogit.create.pt/wp-content/uploads/2019/06/Annotation0-1.jpg?fit=696%2C377&amp;ssl=1" alt="" class="wp-image-10432" srcset="https://blogit.create.pt/wp-content/uploads/2019/06/Annotation0-1.jpg 1708w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation0-1-300x162.jpg 300w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation0-1-768x416.jpg 768w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation0-1-1024x555.jpg 1024w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation0-1-696x377.jpg 696w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation0-1-1068x578.jpg 1068w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation0-1-776x420.jpg 776w" sizes="(max-width: 1708px) 100vw, 1708px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1694" height="918" src="https://i2.wp.com/blogit.create.pt/wp-content/uploads/2019/06/Annotation2-1.jpg?fit=696%2C377&amp;ssl=1" alt="" class="wp-image-10433" srcset="https://blogit.create.pt/wp-content/uploads/2019/06/Annotation2-1.jpg 1694w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation2-1-300x163.jpg 300w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation2-1-768x416.jpg 768w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation2-1-1024x555.jpg 1024w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation2-1-696x377.jpg 696w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation2-1-1068x579.jpg 1068w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation2-1-775x420.jpg 775w" sizes="(max-width: 1694px) 100vw, 1694px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1704" height="923" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/06/Annotation1.jpg?fit=696%2C377&amp;ssl=1" alt="" class="wp-image-10429" srcset="https://blogit.create.pt/wp-content/uploads/2019/06/Annotation1.jpg 1704w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation1-300x163.jpg 300w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation1-768x416.jpg 768w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation1-1024x555.jpg 1024w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation1-696x377.jpg 696w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation1-1068x579.jpg 1068w, https://blogit.create.pt/wp-content/uploads/2019/06/Annotation1-775x420.jpg 775w" sizes="(max-width: 1704px) 100vw, 1704px" /></figure>



<p></p>



<p>This SPFx will soon be available in <a href="http:// https://github.com/SharePoint/sp-dev-fx-webparts" style="color:blue">sp-dev-fx-webparts</a>.</p>



<p>Thank you for reading!</p>
<p>The post <a href="https://blogit.create.pt/joaomendes/2019/06/25/building-multimedia-gallery-with-spfx/">Multimedia Gallery &#8211; SPFx App</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/joaomendes/2019/06/25/building-multimedia-gallery-with-spfx/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SPFx &#8211; Site Designs Manager</title>
		<link>https://blogit.create.pt/joaomendes/2019/03/29/spfx-manage-site-designs-web-part/</link>
					<comments>https://blogit.create.pt/joaomendes/2019/03/29/spfx-manage-site-designs-web-part/#respond</comments>
		
		<dc:creator><![CDATA[João Mendes]]></dc:creator>
		<pubDate>Fri, 29 Mar 2019 00:22:12 +0000</pubDate>
				<category><![CDATA[SharePoint Online]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SPFx]]></category>
		<guid isPermaLink="false">https://blogit.create.pt/?p=9236</guid>

					<description><![CDATA[<p>The Web Part This web part allows tenant administrators to manage site designs through a graphical interface. Only the tenant administrators are allowed to manage site designs, the web part verifies if current user has tenant administrator role. Features available : Create a site design Edit site design Delete site design Manage site scripts associated [&#8230;]</p>
<p>The post <a href="https://blogit.create.pt/joaomendes/2019/03/29/spfx-manage-site-designs-web-part/">SPFx &#8211; Site Designs Manager</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>The Web Part</h1>
<p>This web part allows tenant administrators to manage site designs through a graphical interface.</p>
<p>Only the tenant administrators are allowed to manage site designs, the web part verifies if current user has tenant administrator role.</p>
<p><strong>Features available :</strong></p>
<ul>
<li><strong>Create a site design</strong></li>
<li><strong>Edit site design</strong></li>
<li><strong>Delete site design</strong></li>
<li><strong>Manage site scripts associated to a site design</strong></li>
<li><strong>Manage site design rights</strong></li>
<li><strong>Apply site design&nbsp;</strong></li>
</ul>
<p></p>


<h2 class="wp-block-heading">List Site Designs</h2>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_41.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9306" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_41.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_41-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_41-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_41-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_41-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_41-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_41-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<h2 class="wp-block-heading">Add, Edit, Delete, Site Designs</h2>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_48.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9307" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_48.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_48-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_48-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_48-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_48-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_48-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_49_48-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_52_55.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9308" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_52_55.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_52_55-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_52_55-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_52_55-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_52_55-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_52_55-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_52_55-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i0.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_14.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9309" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_14.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_14-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_14-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_14-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_14-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_14-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_14-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i0.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_43.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9310" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_43.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_43-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_43-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_43-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_43-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_43-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_43-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<h2 class="wp-block-heading">Site Design Rights</h2>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_54.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9312" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_54.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_54-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_54-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_54-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_54-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_54-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_53_54-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_54_27.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9314" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_54_27.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_54_27-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_54_27-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_54_27-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_54_27-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_54_27-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_54_27-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_09.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9315" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_09.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_09-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_09-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_09-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_09-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_09-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_09-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<h2 class="wp-block-heading">Site Scripts Associated to Site Design</h2>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i2.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_30.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9317" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_30.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_30-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_30-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_30-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_30-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_30-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_30-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i0.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_57.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9320" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_57.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_57-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_57-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_57-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_57-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_57-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_57-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_40.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9318" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_40.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_40-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_40-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_40-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_40-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_40-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_40-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_48-1.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9319" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_48-1.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_48-1-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_48-1-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_48-1-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_48-1-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_48-1-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_55_48-1-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<h2 class="wp-block-heading">Apply Site Design</h2>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_46.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9321" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_46.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_46-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_46-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_46-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_46-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_46-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_46-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i2.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_57.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9322" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_57.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_57-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_57-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_57-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_57-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_57-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_56_57-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_10.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9324" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_10.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_10-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_10-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_10-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_10-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_10-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_10-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<figure class="wp-block-image"><img decoding="async" width="1920" height="1080" src="https://i1.wp.com/blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_51.png?fit=696%2C392&amp;ssl=1" alt="" class="wp-image-9325" srcset="https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_51.png 1920w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_51-300x169.png 300w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_51-768x432.png 768w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_51-1024x576.png 1024w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_51-696x392.png 696w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_51-1068x601.png 1068w, https://blogit.create.pt/wp-content/uploads/2019/04/Manage-Site-Designs-Google-Chrome-05_04_2019-19_57_51-747x420.png 747w" sizes="(max-width: 1920px) 100vw, 1920px" /></figure>



<p>This web part was submitted to  sp-dev-fx-webpart. (PR Created) soon it will be available.</p>



<p>Thank for reading!</p>



<p>sharing is caring !</p>



<p></p>
<p>The post <a href="https://blogit.create.pt/joaomendes/2019/03/29/spfx-manage-site-designs-web-part/">SPFx &#8211; Site Designs Manager</a> appeared first on <a href="https://blogit.create.pt">Blog IT</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://blogit.create.pt/joaomendes/2019/03/29/spfx-manage-site-designs-web-part/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
