Which JavaScript framework can I use with SharePoint Framework

Published Jun 23 2021 11:55 PM 2,663 Views
Microsoft

sample-sharepoint-portal.png

 

You want to build an app using SharePoint Framework and wonder which framework you should use? Here's my personal advice.

 

Extend conversations and portals on Microsoft 365

Using SharePoint Framework you can extend conversations and portals on Microsoft 365. With SharePoint Framework, you can build widgets, called web parts, which users can put on pages or open as tabs in Teams. You can also use SharePoint Framework to add code to existing pages or change how data in lists is displayed.

 

If you have experience building web apps using JavaScript, you can build apps using SharePoint Framework. SharePoint Framework is based on open source tools that you already know, like npm, TypeScript, Yeoman, webpack, and gulp, and there is very little that you have to learn to build your first app.

 

Can I use [your-framework-here] with SharePoint Framework?

There are many JavaScript frameworks that you can use to build web apps. But can you use any one of them when building apps with SharePoint Framework?

 

Use any JavaScript framework

When building apps using SharePoint Framework, you can use any JavaScript framework. If you're comfortable working with Vue or Handlebars, or any other framework, you don't need to learn any other framework. You can be productive from the start and focus on building your app. That said, there is a caveat...

 

While you can use any JavaScript framework when building apps with SharePoint Framework, you will have the best development experience when using React. Here is why.

 

Integrated dev experience

From the development experience point of view, React is integrated with SharePoint Framework. Using the SharePoint Framework Yeoman generator you can create a project that uses React. The necessary configuration, and build and packaging tasks are already configured and ready for you to use. In comparison, if you choose to use another framework, you will need to find a way to integrate its tooling, like the ng CLI, into SharePoint Framework so that you can work efficiently.

 

Seamless UX integration

Next to the SharePoint Framework, Microsoft offers Fluent UI React: a set of ready-to-use components that help you make your app look like Microsoft 365. Rather than spending time on building CSS and ensuring that your app looks as intended in the different browsers, you can save a ton of time and use Fluent UI components instead. But only if you use React. If you use a different framework, you will need to take care of presenting the data yourself.

 

First-load performance

Finally, from the performance point of view, React is already loaded on SharePoint pages. If you build your app on React, your app will load faster. That said, the difference of using React instead of any other framework will be visible only on the initial load. Because once users download your app, it will load from their cache the next time they use it, making the difference imperceptible.

 

The verdict

You can use any JavaScript framework to build apps using SharePoint Framework. SharePoint Framework allows you to benefit from your existing knowledge and use the tools that you already know to build apps for the 250 million people using Microsoft 365.

 

If you're just starting with web development, I'd recommend you to learn React. It will give you the smoothest experience when building apps for Microsoft 365. There are many tools and samples built for React both by Microsoft and the community which you can use to learn and speed up building your apps.

%3CLINGO-SUB%20id%3D%22lingo-sub-2479482%22%20slang%3D%22en-US%22%3EWhich%20JavaScript%20framework%20can%20I%20use%20with%20SharePoint%20Framework%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2479482%22%20slang%3D%22en-US%22%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-center%22%20image-alt%3D%22sample-sharepoint-portal.png%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F290868i7C03DE4A5FB414F3%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22sample-sharepoint-portal.png%22%20alt%3D%22sample-sharepoint-portal.png%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EYou%20want%20to%20build%20an%20app%20using%20SharePoint%20Framework%20and%20wonder%20which%20framework%20you%20should%20use%3F%20Here's%20my%20personal%20advice.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId--436338390%22%20id%3D%22toc-hId--436338383%22%3EExtend%20conversations%20and%20portals%20on%20Microsoft%20365%3C%2FH2%3E%0A%3CP%3EUsing%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fsharepoint%2Fdev%2Fspfx%2Fsharepoint-framework-overview%3FWT.mc_id%3Dm365-16871-wmastyka%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3ESharePoint%20Framework%3C%2FA%3E%20you%20can%20extend%20conversations%20and%20portals%20on%20Microsoft%20365.%20With%20SharePoint%20Framework%2C%20you%20can%20build%20widgets%2C%20called%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fsharepoint%2Fdev%2Fspfx%2Fweb-parts%2Foverview-client-side-web-parts%3FWT.mc_id%3Dm365-16871-wmastyka%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Eweb%20parts%3C%2FA%3E%2C%20which%20users%20can%20put%20on%20pages%20or%20open%20as%20tabs%20in%20Teams.%20You%20can%20also%20use%20SharePoint%20Framework%20to%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fsharepoint%2Fdev%2Fspfx%2Fextensions%2Fget-started%2Fbuild-a-hello-world-extension%3FWT.mc_id%3Dm365-16871-wmastyka%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Eadd%20code%20to%20existing%20pages%3C%2FA%3E%20or%20%3CA%20href%3D%22https%3A%2F%2Fdocs.microsoft.com%2Fsharepoint%2Fdev%2Fspfx%2Fextensions%2Fget-started%2Fbuilding-simple-field-customizer%3FWT.mc_id%3Dm365-16871-wmastyka%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3Echange%20how%20data%20in%20lists%20is%20displayed%3C%2FA%3E.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIf%20you%20have%20experience%20building%20web%20apps%20using%20JavaScript%2C%20you%20can%20build%20apps%20using%20SharePoint%20Framework.%20SharePoint%20Framework%20is%20based%20on%20open%20source%20tools%20that%20you%20already%20know%2C%20like%20npm%2C%20TypeScript%2C%20Yeoman%2C%20webpack%2C%20and%20gulp%2C%20and%20there%20is%20very%20little%20that%20you%20have%20to%20learn%20to%20build%20your%20first%20app.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-2051174443%22%20id%3D%22toc-hId-2051174450%22%3ECan%20I%20use%20%5Byour-framework-here%5D%20with%20SharePoint%20Framework%3F%3C%2FH2%3E%0A%3CP%3EThere%20are%20many%20JavaScript%20frameworks%20that%20you%20can%20use%20to%20build%20web%20apps.%20But%20can%20you%20use%20any%20one%20of%20them%20when%20building%20apps%20with%20SharePoint%20Framework%3F%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId--1553231379%22%20id%3D%22toc-hId--1553231372%22%3EUse%20any%20JavaScript%20framework%3C%2FH3%3E%0A%3CP%3EWhen%20building%20apps%20using%20SharePoint%20Framework%2C%20you%20can%20use%20any%20JavaScript%20framework.%20If%20you're%20comfortable%20working%20with%20Vue%20or%20Handlebars%2C%20or%20any%20other%20framework%2C%20you%20don't%20need%20to%20learn%20any%20other%20framework.%20You%20can%20be%20productive%20from%20the%20start%20and%20focus%20on%20building%20your%20app.%20That%20said%2C%20there%20is%20a%20caveat...%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EWhile%20you%20can%20use%20any%20JavaScript%20framework%20when%20building%20apps%20with%20SharePoint%20Framework%2C%20you%20will%20have%20the%20best%20development%20experience%20when%20using%20React.%20Here%20is%20why.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId-934281454%22%20id%3D%22toc-hId-934281461%22%3EIntegrated%20dev%20experience%3C%2FH3%3E%0A%3CP%3EFrom%20the%20development%20experience%20point%20of%20view%2C%20React%20is%20integrated%20with%20SharePoint%20Framework.%20Using%20the%20SharePoint%20Framework%20Yeoman%20generator%20you%20can%20create%20a%20project%20that%20uses%20React.%20The%20necessary%20configuration%2C%20and%20build%20and%20packaging%20tasks%20are%20already%20configured%20and%20ready%20for%20you%20to%20use.%20In%20comparison%2C%20if%20you%20choose%20to%20use%20another%20framework%2C%20you%20will%20need%20to%20find%20a%20way%20to%20integrate%20its%20tooling%2C%20like%20the%20ng%20CLI%2C%20into%20SharePoint%20Framework%20so%20that%20you%20can%20work%20efficiently.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId--873173009%22%20id%3D%22toc-hId--873173002%22%3ESeamless%20UX%20integration%3C%2FH3%3E%0A%3CP%3ENext%20to%20the%20SharePoint%20Framework%2C%20Microsoft%20offers%20%3CA%20href%3D%22https%3A%2F%2Fdeveloper.microsoft.com%2Ffluentui%3FWT.mc_id%3Dm365-16871-wmastyka%23%2Fcontrols%2Fweb%22%20target%3D%22_blank%22%20rel%3D%22noopener%20noreferrer%22%3EFluent%20UI%20React%3C%2FA%3E%3A%20a%20set%20of%20ready-to-use%20components%20that%20help%20you%20make%20your%20app%20look%20like%20Microsoft%20365.%20Rather%20than%20spending%20time%20on%20building%20CSS%20and%20ensuring%20that%20your%20app%20looks%20as%20intended%20in%20the%20different%20browsers%2C%20you%20can%20save%20a%20ton%20of%20time%20and%20use%20Fluent%20UI%20components%20instead.%20But%20only%20if%20you%20use%20React.%20If%20you%20use%20a%20different%20framework%2C%20you%20will%20need%20to%20take%20care%20of%20presenting%20the%20data%20yourself.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH3%20id%3D%22toc-hId-1614339824%22%20id%3D%22toc-hId-1614339831%22%3EFirst-load%20performance%3C%2FH3%3E%0A%3CP%3EFinally%2C%20from%20the%20performance%20point%20of%20view%2C%20React%20is%20already%20loaded%20on%20SharePoint%20pages.%20If%20you%20build%20your%20app%20on%20React%2C%20your%20app%20will%20load%20faster.%20That%20said%2C%20the%20difference%20of%20using%20React%20instead%20of%20any%20other%20framework%20will%20be%20visible%20only%20on%20the%20initial%20load.%20Because%20once%20users%20download%20your%20app%2C%20it%20will%20load%20from%20their%20cache%20the%20next%20time%20they%20use%20it%2C%20making%20the%20difference%20imperceptible.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CH2%20id%3D%22toc-hId-1603836720%22%20id%3D%22toc-hId-1603836727%22%3EThe%20verdict%3C%2FH2%3E%0A%3CP%3EYou%20can%20use%20any%20JavaScript%20framework%20to%20build%20apps%20using%20SharePoint%20Framework.%20SharePoint%20Framework%20allows%20you%20to%20benefit%20from%20your%20existing%20knowledge%20and%20use%20the%20tools%20that%20you%20already%20know%20to%20build%20apps%20for%20the%20250%20million%20people%20using%20Microsoft%20365.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EIf%20you're%20just%20starting%20with%20web%20development%2C%20I'd%20recommend%20you%20to%20learn%20React.%20It%20will%20give%20you%20the%20smoothest%20experience%20when%20building%20apps%20for%20Microsoft%20365.%20There%20are%20many%20tools%20and%20samples%20built%20for%20React%20both%20by%20Microsoft%20and%20the%20community%20which%20you%20can%20use%20to%20learn%20and%20speed%20up%20building%20your%20apps.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-TEASER%20id%3D%22lingo-teaser-2479482%22%20slang%3D%22en-US%22%3E%3CP%3EYou%20want%20to%20build%20an%20app%20using%20SharePoint%20Framework%20and%20wonder%20which%20framework%20you%20should%20use%3F%20Here's%20my%20personal%20advice.%3C%2FP%3E%3C%2FLINGO-TEASER%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2479482%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EGetting%20started%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Co-Authors
Version history
Last update:
‎Jun 23 2021 11:55 PM
Updated by: