
Saturs
Ievads
Mūsdienu SharePoint projektos problēma reti ir tikai interfeiss. Reālais izaicinājums sākas brīdī, kad vienam risinājumam jāstrādā SharePoint lapās, Microsoft Teams un Viva vidē, jāsaglabā drošs lietotāja konteksts un jārīkojas bez trauslām atkarībām no lapas HTML struktūras. Tieši šeit SPFx React kļūst par praktisku izvēli: SharePoint Framework ir Microsoft ieteiktais pielāgošanas un paplašināšanas modelis, kas darbojas klienta pusē, atbalsta modernās tīmekļa tehnoloģijas un ļauj veidot responsīvas pieredzes [1].
Raksta plānā fokusējamies uz to, kā izvēlēties piemērotu projektu struktūru, kurā vietā React dod lielāko ieguvumu, kā izmantot SPFx dzīvesciklu un kāpēc nav droši balstīties uz SharePoint lapas HTML DOM vai iframe pieeju. Praktiskajā daļā iekļaujam arī satura vadītu komponentu arhitektūru ar Microsoft Graph vai ārēji hostētu saturu, kā arī skaidru ceļu no ģeneratora līdz uzturējamam risinājumam. SPFx komponenti darbojas pašreizējā lietotāja un savienojuma kontekstā pārlūkprogrammā, un to renderēšana notiek parastajā lapas DOM [1]. Tas nozīmē, ka tehniskajam vadītājam jāplāno ne tikai funkcionalitāte, bet arī komponentu robežas, autentifikācija, konfigurācija un hostēšanas scenāriji jau projekta sākumā.
Kāpēc SPFx React ir piemērots moderniem SharePoint projektiem
Modernā SharePoint projektā problēma nav tikai vizuālais izkārtojums. Sarežģījums parādās brīdī, kad viena un tā pati lietotne jāparāda SharePoint lapā, jāsaglabā lietotāja konteksts un jāpilda droša piekļuve Microsoft 365 datiem bez atsevišķas pieslēgšanās katram ekrānam. SPFx React šim scenārijam ir dabisks, jo SharePoint Framework darbojas klienta pusē, atbalsta vienkāršu SharePoint datu integrāciju un ir paredzēts arī paplašināšanai Microsoft Teams un Microsoft Viva [1].
Cēlonis parasti ir vecais pielāgojumu modelis: risinājums tiek būvēts kā atsevišķs skripts vai iframe, bet pēc tam to ir grūti droši uzturēt, pieslēgt lietotāja kontekstam un pārnest uz citiem hostiem. SPFx šo sadalījumu noņem, jo kontroles tiek renderētas parastajā lapas DOM, netiek izmantoti iframe, un komponenti strādā pašreizējā lietotāja un savienojuma kontekstā pārlūkprogrammā [1]. Tas nozīmē, ka React komponents tiek lietots kā normāla lapas daļa, nevis kā ielīmēts ārējs bloks.
Praktiskais ieviešanas ceļš sākas ar hosta izvēli un datu avota robežu nospraušanu:
- Atver SharePoint site un pārbaudi, kur lietotne dzīvos: modernā lapā, klasiskā lapā vai Teams vidē.
- Definē, vai komponents rādīs SharePoint saturu, Microsoft Graph datus vai ārēji hostētu saturu; SPFx tieši paredzēts šādai satura vadītai pieejai [1].
- Ja vajadzīga atkārtota lietošana, plāno vienu komponentu, ko hostēs dažādās vietās bez koda līmeņa izmaiņām; tā ir SPFx galvenā priekšrocība [1].
- Pirms publicēšanas validē, ka nav atkarību no lapas HTML DOM struktūras vai CSS stiliem, jo tie nav stabils pamats un var sabojāt risinājumu [1].
Pārbaude praksē ir vienkārša: komponents vienādi atveras SharePoint lapā un citā atļautā hostā, lietotājs nav spiests atkārtoti autentificēties, un datu iegūšana notiek caur SPFx kontekstu, nevis caur tiešu piekļuvi lapas HTML. Ja šie punkti strādā, arhitektūra ir uzbūvēta pareizi. Tālāk jēgpilni jāizvēlas, kurš ietvars SPFx vidē dod tīrāko implementāciju, īpaši React salīdzinājumā ar citām iespējām.
Kad izvēlēties React, nevis citu ietvaru SPFx vidē
Tipiska kļūda praksē ir sākt ar mīļāko JavaScript ietvaru, nevis ar projekta ierobežojumu pārbaudi. Rezultāts ir risinājums, kas tehniski strādā, bet komandai ir smagnējs uzturēšanā vai neatbilst SPFx ieradumiem. SPFx ir ietvaru agnostisks un atbalsta React, Handlebars, Knockout, Angular un Vue.js, tāpēc izvēle nav ideoloģiska; tā ir balstīta uz komandas prasmēm, komponentu sarežģītību un nepieciešamību atkārtoti izmantot loģiku dažādos hostos [1].
Kļūda rodas tad, kad komanda sajauc UI slāni ar datu slāni. Ja komponents satur gan formulāru, gan tabulu, gan datu ielādi, un tam vēl jāstrādā ar konfigurācijas izmaiņām, React dod skaidru komponentu un stāvokļa struktūru. Savukārt vienkāršam vizuālam bloka formātam ar maz loģikas pietiek ar citu vieglāku pieeju. SPFx paša modelis atbalsta modernās tīmekļa tehnoloģijas un rīkus, lai veidotu responsīvas un mobilajām ierīcēm gatavas lietotnes [1], tāpēc React ir īpaši noderīgs, kad interfeiss kļūst stāvokļa ziņā bagāts.
Ja komanda izvēlas React, konfigurācijā jāsaliek skaidras robežas starp datu iegūšanu, attēlošanu un SPFx īpašībām:
- React izvēle: lietotne rāda filtrus, sarakstus, izvēles, stāvokļa maiņas un atkārtotu renderēšanu.
- Cits ietvars: interfeiss ir vienkāršs, bez sarežģītas komponentu hierarhijas.
- SPFx aspekts: visiem variantiem izmanto vienu un to pašu kontekstu, īpašības un autentifikācijas modeli, ko SPFx nodrošina ar savu klienta API un HttpClient [1].
Ja šo izvēli neizdara, rodas divas sekas. Pirmkārt, komponents kļūst grūti testējams, jo datu ielāde un interfeiss dzīvo vienā blokā. Otrkārt, pēc pirmās paplašināšanas uz Teams vai Viva izceļas arhitektūras vājums, jo pārlieku cieša saite ar vienu renderēšanas veidu bremzē pārnešanu. Tieši tāpēc React SPFx vidē izvēlas tad, kad vajag skaidru komponentu struktūru, notikumu vadību un vieglu pielāgošanu dažādiem hostiem. Nākamais solis ir sakārtot projekta struktūru tā, lai šī izvēle būtu redzama jau ģenerēšanas brīdī.
SPFx React projekta struktūra: ģenerators, pakotnes un skaidras robežas
SPFx React projektā visbiežāk salīdzina divas pieejas: ātru startu ar noklusēto ģeneratora struktūru un disciplinētu struktūru ar skaidri nodalītiem moduļiem. Pirmais variants der pierādījumam vai vienkāršam web part, bet otrais ir pareizā izvēle, ja komponents dzīvos ilgāk par pirmo sprintu. SPFx risinājumus var veidot ar SharePoint Framework Yeoman Generator, Microsoft Agents Toolkit vai SharePoint Framework Toolkit, un izstrādes ķēde balstās uz npm, TypeScript, Yeoman, webpack un Heft [1].
Ātrā pieeja sākas ar ģeneratoru un vienu web part. Tā ir laba, ja vajadzīgs ātri redzēt rezultātu SharePoint lapā un pārbaudīt biznesa ideju. Taču, tiklīdz parādās vairāki datu avoti, atkārtoti lietojami komponenti un sarežģītāka konfigurācija, vienas mapes projekts kļūst par uzturēšanas risku. Tad nepieciešamas skaidras robežas: atsevišķi komponenti prezentācijai, atsevišķi servisi datu piekļuvei, atsevišķs konfigurācijas slānis. SPFx priekšrocība ir tā, ka viens un tas pats komponents tiek hostēts dažādos hostos bez koda līmeņa izmaiņām [1], tādēļ arhitektūra jāsaliek tā, lai hosta maiņa nenozīmētu pārrakstīšanu.
Praktiska struktūra sākas ar mapi un atkarību sadalījumu:
- Web part slānis: satur SPFx iedarbināšanu, īpašības un saikni ar lapas kontekstu.
- React UI slānis: satur ekrāna komponentus, stāvokli un renderēšanu.
- Service slānis: satur datu pieprasījumus uz SharePoint vai Microsoft Graph, izmantojot SPFx kontekstu un HttpClient [1].
- Config slānis: satur atšķirīgus parametrus dev, test un production videi, bet nekomplicē pašu UI.
Ieteikums ir vienkāršs: ja projekts ir īslaicīgs vai demonstrācijas līmenī, pietiek ar ģeneratora noklusēto formu. Ja risinājums tiks uzturēts, nodots citai komandai vai paplašināts uz Teams un Viva, uzreiz definē robežas starp ielādi, skatu un datu piekļuvi. Tieši tā var saglabāt to pašu kodu vairākos hostos un izvairīties no pārrakstīšanas. Nākamajā sadaļā jāsavieno šī struktūra ar dzīvesciklu un konfigurācijas notikumiem, jo tie nosaka, kā komponents reaģē uz izmaiņām lapā.
Kā veidot SPFx React komponentus ar dzīvesciklu un konfigurāciju
Šīs pieejas uzdevums nav tikai uzrakstīt renderēšanas funkciju. SPFx komponents dzīvo lapā kopā ar konfigurāciju, ielādi, serializēšanu un deserializēšanu, tāpēc izstrādātājam jāsaprot, kurā brīdī ielādēt datus, kurā brīdī pārrēķināt stāvokli un kurā brīdī droši saglabāt īpašības. SPFx ļauj piekļūt dzīvesciklam, ieskaitot renderēšanu, ielādi, serializēšanu un deserializēšanu, konfigurācijas izmaiņas un citus notikumus [1].
Darba secība praktiski izskatās šādi:
- Atver savu SPFx projektu un identificē web part klasi, kurā ir sākuma dzīvescikls un īpašības.
- Apraksti lietotāja konfigurāciju kā īpašības, nevis kā cieti iestādītas konstantes; SPFx ietver vienkāršu īpašību definēšanu un konfigurāciju [1].
- React komponentā atsevišķi nošķir sākotnējo renderi, datu ielādi un UI pārzīmēšanu, kad īpašības mainās.
- Izmanto SPFx kontekstu, nevis pieņēmumus par lapas DOM, jo SPFx darbojas pašreizējā lietotāja un savienojuma kontekstā pārlūkprogrammā [1].
- Ja vajadzīga autentificēta datu ielāde, balsties uz SPFx klienta API un HttpClient, jo tie ir paredzēti piekļuvei SharePoint un Microsoft 365 resursiem [1].
Biežākā kļūme pirmajā solī ir mēģinājums saglabāt stāvokli tikai React iekšienē. Tad konfigurācijas izmaiņas lapā nesasniedz komponentu pietiekami skaidri, un komponents sāk rādīt vecus datus. Otrā kļūme ir tieša manipulācija ar HTML DOM struktūru vai CSS, lai “ātrāk” panāktu vajadzīgo izskatu. Microsoft dokumentācija skaidri norāda, ka SharePoint page HTML DOM nav API un no struktūras vai CSS stiliem vajadzētu izvairīties, jo tie var mainīties un sabojāt risinājumus [1]. Trešā kļūme ir pieprasījumu rakstīšana bez SPFx konteksta, kas liek pašam domāt par autentifikācijas detaļām, lai gan SPFx šo slāni jau nodrošina.
Praksē pareizi uzbūvēts komponents reaģē uz lapas konfigurāciju bez pārlādes, saglabā lietotāja kontekstu un turpina strādāt pēc publicēšanas bez papildu pielabošanas tieši DOM līmenī. Tas ir brīdis, kad SPFx React struktūra kļūst uzticama ikdienas lietošanā. Tālāk jānostiprina tas pats princips raksta noslēdzošajā daļā ar konkrētiem dizaina un pārbaudes secinājumiem.
Datu iegūšana SPFx React risinājumos ar HttpClient un Microsoft Graph
SPFx React datu slānis sākas ar skaidru jēdzienu: komponents neraksta tiešu piesaisti pie lapas HTML, bet izmanto SPFx nodrošināto klienta puses kontekstu un HttpClient vai Microsoft Graph piekļuvi. Tas ir būtiski, jo SPFx darbojas pašreizējā lietotāja un savienojuma kontekstā pārlūkprogrammā, bet pats ietvars piegādā arī robustu klienta API ar autentifikāciju SharePoint un Microsoft 365 vidē [1]. Ikdienā tas nozīmē, ka React komponents nesaņem “visu uzreiz”, bet precīzi pieprasa vajadzīgo saturu: saraksta ierakstus, profila datus, dokumentu metadatus vai ārēji hostētu saturu, ko pēc tam pārveido par UI stāvokli.
Praktiskais darba modelis ir šāds:
- SPFx projektā definē datu avotu pie komponenta īpašībām, nevis cieti ieliec URL JSX kodā.
- Iniciē pieprasījumu komponenta ielādes posmā un saglabā rezultātu stāvoklī, lai renderēšana paliek determinēta.
- Ja saturs nāk no Microsoft 365, izmanto SPFx piegādāto autentifikācijas kontekstu, nevis atsevišķu piekļuves loģiku katram ekrānam [1].
- Ja dati tiek rādīti vairākos hostos, saglabā vienu komponentu un vienu datu līgumu, jo SPFx atbalsta vienu un to pašu komponentu izmantošanu dažādos hostos bez koda līmeņa izmaiņām [1].
Ikdienas ieguvums rodas brīdī, kad komponents vairs nepārkāpj robežu starp datu iegūšanu un attēlošanu. React uzdevums ir renderēt skatu, bet SPFx slānis nodrošina lietotāja kontekstu, īpašības, dzīvesciklu un piekļuvi Microsoft 365 datiem. Ja risinājums jāpaplašina ar Microsoft Graph, datu iegūšanas shēma paliek tā pati: pieprasījums, stāvoklis, attēlošana. Tas disciplinē kodu un samazina risku, ka biznesa loģika izkaisās pa komponenta renderēšanas metodi. Nākamais solis ir saprast, kur šis pats komponents dzīvo dažādos hostos un kāpēc hostēšanas izvēle ietekmē visu projekta arhitektūru.
SPFx React hostēšana SharePoint, Teams un Viva scenārijos
Praksē labs SPFx React risinājums sākas ar vienu konkrētu scenāriju: biznesa komanda grib vienu saturisku kartīti SharePoint lapā, to pašu informācijas bloku Microsoft Teams cilnē un saistītu pieredzi Viva Connections vidē. Kļūda ir katram hostam veidot atsevišķu implmentāciju. SPFx modelis tieši šai situācijai ir paredzēts, jo tas nodrošina automātisku hostēšanu un ļauj izmantot vienu un to pašu komponentu dažādos hostos bez koda līmeņa izmaiņām [1].
Kas tiek mainīts projekta līmenī, lai tas strādātu korekti:
- Komponentu definē kā SPFx tīmekļa daļu vai citu paplašinājuma tipu, nevis kā atsevišķu front-end lietotni ar manuālu ievietošanu katrā vidē.
- Pārbaudi, kuros hostos risinājums ir paredzēts darbam: SharePoint, Microsoft Teams vai Viva Connections, jo SPFx tieši atbalsta šo hostu pielāgošanu un paplašināšanu [1].
- Ja mērķis ir Viva Connections, izmanto SPFx Adaptive Card Extensions, jo SPFx ir vienīgā paplašināšanas un pielāgošanas iespēja Viva Connections [1].
- Ja mērķis ir Teams, veido SPFx tīmekļa daļu risinājumu ar skaidru domēna robežu, lai tas saglabā vienu vizuālo un datu loģiku visur, kur tiek hostēts [1].
Šeit būtiskākais nav “pārkopēt” UI, bet izveidot vienu hostam neatkarīgu komponentu ar skaidru uzvedību. SPFx ir ietvaru agnostisks, un Microsoft dokumentācija norāda, ka to var izmantot SharePoint, Microsoft Teams un Microsoft Viva Connections pielāgošanai un paplašināšanai [1]. Tas praktiski nozīmē, ka projektā fokusējas uz biznesa saturu, nevis uz platformas īpatnībām katrā atsevišķā lietotnē. Ja hostēšana ir pareizi sakārtota, nākamais jautājums kļūst daudz svarīgāks: kā šo pašu komponentu turēt drošu, bez liekām piekļuves sarežģītībām un bez lietotāju piekrišanas haosa.
Drošība, SSO un piekrišanas modelis SPFx React lietotnēm
Drošības problēma SPFx React projektos parasti parādās nevis kodā, bet integrācijā: izstrādātājs mēģina ieviest atsevišķu autentifikācijas plūsmu katram servisam, lai gan SPFx komponentiem ir automātisks un nemanāms SSO visās platformās, kurās tie ir hostēti [1]. Cēlonis ir nepareizs pieņēmums, ka front-end komponentam jāuztur sava piekļuves loģika. SPFx modelī šis slānis jau ir iestrādāts, un tāpēc komponenti darbojas pašreizējā lietotāja un savienojuma kontekstā pārlūkprogrammā [1].
Drošā ieviešana balstās uz trim konkrētiem soļiem:
- Komponentā nestrādā ar SharePoint lapas HTML DOM kā ar datu avotu, jo SharePoint page HTML DOM nav API un no tā struktūras vai CSS stiliem vajadzētu izvairīties [1].
- Izmanto SPFx klienta API un
HttpClient, lai pieprasījumi notiktu ar ietvara nodrošinātu kontekstu, nevis ar manuāliem apvedceļiem [1]. - Projektē piekļuvi tā, lai gala lietotājiem no Microsoft 365 nav vajadzīgas specifiskas piekrišanas; tas nozīmē, ka piekrišanas modelis jārisina risinājuma līmenī, nevis katrā komponentā atsevišķi [1].
Praktiska pārbaude notiek divos līmeņos. Pirmais ir lietotāja līmenis: komponents atveras bez papildus pieteikšanās dialogiem tajā pašā hostā, kur lietotājs jau ir autentificēts. Otrais ir tehniskais līmenis: pieprasījumi atgriež datus, izmantojot to pašu identitāti, ar kuru lietotājs strādā lapā. Ja šie divi punkti nesakrīt, problēma parasti slēpjas nevis SPFx, bet nepareizā ārējā servisa integrācijā vai mēģinājumā apiet ietvara paredzēto autentifikācijas ceļu. Kad šis pamats ir sakārtots, projektā paliek pēdējais tests — identificēt tipiskās kļūdas, kas sabojā uzturēšanu un padara risinājumu trauslu.
Biežākās kļūdas SPFx React projektos un kā no tām izvairīties
Tipiskākā kļūda SPFx React projektos ir mēģinājums būvēt risinājumu kā tradicionālu SPA un pēc tam pielāgot to SharePoint. Šāds ceļš rada trīs problēmas: komponents sāk balstīties uz lapas struktūru, tiek sajaukta renderēšana ar datu loģiku un rodas atkarība no CSS vai DOM detaļām, kuras platforma nesola saglabāt. Microsoft dokumentācija tieši norāda, ka no SharePoint page HTML DOM struktūras vai CSS stiliem vajadzētu izvairīties, jo tie var mainīties un sabojāt risinājumus [1].
Pie kļūdām praksē pieskaita arī šādus paradumus:
- izmanto iframe, lai apietu integrācijas problēmas, lai gan SPFx pielāgojumam netiek izmantoti iframe [1];
- raksta komponentu tā, it kā tas būtu piesaistīts vienai lapai, lai gan SPFx kontroles tiek renderētas parastajā lapas DOM [1];
- atstāj visu konfigurāciju cieti kodētu, lai gan SPFx ļauj definēt īpašības un konfigurāciju kā daļu no komponenšu dzīvescikla [1];
- no sākuma nespēj saskaņot hostu, lai gan SPFx tīmekļa daļas var pievienot gan klasiskajām, gan modernajām lapām, kā arī izmantot Teams paplašināšanai [1].
Pareizā konfigurācija sākas ar disciplīnu: komponentam jāstrādā ar SPFx dzīvesciklu, ar īpašībām un ar dokumentētu klienta API, nevis ar trikiem, kas saistīti ar lapas iekšējo HTML. Ja projekts balstās uz React, tad UI ir jāveido kā datu stāvokļa attēlojums, nevis kā DOM manipulāciju virkne. SPFx izstrādātāja rīku ķēde ar npm, TypeScript, Yeoman, webpack un Heft tieši šo disciplīnu atbalsta [1]. Ja šīs kļūdas izlabo projekta sākumā, risinājums paliek pārnesams starp hostiem, drošs un uzturams. Tālāk loģiskais turpinājums ir praktiska ieviešanas arhitektūra, kur šo komponentu savieno ar komandai saprotamu izstrādes procesu un testēšanu.
Avoti
- Overview of the SharePoint Framework (SPFx). Microsoft Learn. https://learn.microsoft.com/en-us/sharepoint/dev/spfx/sharepoint-framework-overview (skatīts 22.08.2026)
-
SPFx un React pamati praktiskai izstrādei
Šī dokumentācija sniedz pārskatu par SharePoint Framework un tā lietojumu kopā ar React modernu risinājumu veidošanai. -
SPFx saderība ar platformu un rīkiem
Šeit aprakstīta SPFx versiju, Node.js un citu rīku saderība, kas ir svarīga stabilai SPFx React izstrādei. -
Office UI Fabric React komponentu izmantošana SPFx
Šis resurss parāda, kā SPFx projektos izmantot Office UI Fabric React komponentus, lai ātrāk veidotu vienotu interfeisu. -
SPFx izstrādes rīki un bibliotēkas
Dokumentācija apkopo būtiskos SPFx izstrādes rīkus un bibliotēkas, kas palīdz efektīvāk strādāt ar React balstītiem risinājumiem.
-
SPFx v1.20: Izmaiņas React, būvniecības procesā un drošībā
Šis raksts skaidro, kā SPFx React jaunākās izmaiņas ietekmē webpartu izstrādi, būvniecību un drošību modernās SharePoint lietotnēs. -
SPFx webpart izstrāde ar React: praktiski scenāriji un labākās prakses
Raksts tieši parāda, kā SPFx React izmantot praktiskos webpart scenārijos, lai veidotu lietotājam ērtus un uzturamus risinājumus. -
SPFx API: 9 jaunumi drošākai M365 integrācijai
Šis materiāls papildina SPFx React tēmu, parādot API uzlabojumus, kas palīdz drošāk un efektīvāk integrēt M365 servisus. -
SPFx komponenti: 8 jaunumi un to pielietojums
Raksts saistās ar SPFx React, jo apraksta noderīgus komponentu jaunumus, ko var izmantot modernu SharePoint saskarņu veidošanā.
Kā KSJ var palīdzēt
-
Answergrove: privāts AI asistents jūsu SharePoint dokumentiem
Mūsu pamatprodukts: privāts AI asistents, kas atbild no jūsu SharePoint dokumentiem un katrai atbildei norāda dokumentu, lapu un versiju. -
Pakalpojumi
Microsoft 365 un SharePoint automatizācija, ko izstrādājam un uzturam jūsu pašu tenantā.

