Se anunță shiny.webawesome: un pachet web UI pentru R/Shiny

URMĂREȘTE-NE
16,065FaniÎmi place
1,142CititoriConectați-vă

(Acest articol a fost publicat pentru prima dată pe R-posts.comși cu amabilitate a contribuit la R-bloggeri). (Puteți raporta problema legată de conținutul acestei pagini aici)


Doriți să vă distribuiți conținutul pe R-bloggeri? dați clic aici dacă aveți un blog, sau aici dacă nu aveți.

shiny.webawesome aduce Web Awesome la R Shiny prin wrapper-uri generate, legături reactive și un timp de rulare combinat. Acesta urmărește suport complet pentru componente, rămânând în același timp suficient de aproape de amonte, încât documentele și exemplele Web Awesome sunt direct utile în utilizarea cotidiană a pachetelor.

CRAN | Universul R | Site-ul web al pachetului | Depozitul sursă

Fundal

shiny.webawesome a pornit de la un decalaj perceput: Shiny ar beneficia de o bibliotecă de interfață de utilizare care se simte modernă, lustruită vizual și suficient de largă pentru a susține o aplicație completă în mod coerent. Web Awesome a fost o potrivire puternică, deoarece combină componente bogate, utilități de aspect și stil și documentație detaliată din amonte cu o structură de componente web bazată pe standarde, care este ușor de urmărit din R. Acest lucru face ca pachetul să rămână mai ușor aproape de amonte, în timp ce se potrivește în mod natural în Shiny.

Întregul joc

Iată o captură de ecran a unui exemplu de aplicație simplu și complet de utilizare shiny.webawesome. Aplicația live și codul complet sunt disponibile într-un articol la: https://mbanand.github.io/ghpages/announcement/..

Captură de ecran a unui exemplu de aplicație shiny.webawesome care arată o bară laterală de control și vizualizări coordonate de diagramă, rezumat și detalii.

Acest exemplu prezintă multe dintre facilitățile disponibile în pachet:

  • o bibliotecă de componente bogată vizual
  • utilizarea directă a utilităților de aspect Web Awesome, cum ar fi wa-stack, wa-cluster, wa-gap-*și wa-align-* clasele
  • styling prin jetoane de design Web Awesome și clase precum --wa-color-*, --wa-font-*și wa-body-*
  • legături de intrare reactive Shiny
  • ajutoare pentru apelarea metodelor pe elemente HTML, setarea proprietăților și injectarea de fragmente JavaScript simple

Filosofia Designului

shiny.webawesome este conceput pentru a rămâne aproape de Web Awesome din amonte. Majoritatea wrapper-urilor de componente sunt generate din metadatele Web Awesome, care ajută la păstrarea numelor, structurii și comportamentului din amonte, în timp ce traducă interfața în convenții R normale, cum ar fi snake_case.

Acea aliniere strânsă are un avantaj practic: atunci când doriți detalii mai profunde, exemple sau îndrumări specifice componentelor, puteți, de obicei, să mergeți direct la documentația Web Awesome din amonte și să aplicați ceea ce găsiți direct în shiny.webawesome. Pachetul acceptă în prezent toate componentele Web Awesome, astfel încât documentele din amonte sunt o referință practică pentru utilizarea de zi cu zi.

Pentru a sprijini modelul server-client al lui Shiny, pachetul adaugă un set mic de ajutoare de pagină și de aspect, legături reactive organizate și un strat de comandă îngust pentru cazurile în care interacțiunea din partea browserului depășește pachetele generate.

Rezultatul este un pachet cu o cale implicită clară. Folosiți wrapper-urile generate pentru interfața de utilizare obișnuită, folosiți legături pentru o stare reactivă semnificativă și ajungeți la comenzi sau adeziv JavaScript mic atunci când aplicația are nevoie de ele.

Legături strălucitoare

shiny.webawesome nu transmite fiecare eveniment din browser și fiecare detaliu al telemetriei componente în Shiny. Multe detalii despre starea componentelor și interacțiunea sunt mai bine gestionate local în browser decât transformate în mesaje de server. În consecință, pachetul expune doar un set organizat de legături Shiny care se potrivesc modelului reactiv al lui Shiny, cu accent pe starea de comitere semnificativă, mai degrabă decât pe fluxurile de evenimente de browser de nivel scăzut.

În cel mai frecvent caz, o legare publică o valoare semantică durabilă. O selecție raportează valoarea sa curentă, un dialog poate raporta dacă este deschis, iar un arbore poate raporta ID-urile elementului selectat în prezent. Ideea cheie este că Shiny primește starea de care ține de fapt aplicația, nu numele brut evenimentului care a produs-o.

Unele componente sunt mai bine tratate ca acțiuni decât ca valori. Un buton este cel mai clar exemplu: în Shiny, se comportă ca o intrare de acțiune Shiny, fiecare clic producând un nou eveniment de intrare. Un număr mic de componente necesită atât semantica acțiunii, cât și o valoare separată. Un meniu derulant, de exemplu, poate fi necesar să declanșeze reactivitate la fiecare alegere, inclusiv selecțiile repetate ale aceluiași element, expunând, de asemenea, cea mai recentă valoare selectată.

Acest design menține mesajele reactive către server mai mici, mai clare și mai ușor de raționat. Dacă o interacțiune aparține în mod natural modelului de intrare al lui Shiny, shiny.webawesome îl va expune ca o legare. Dacă este mai natural o preocupare din partea browserului, de obicei se potrivește mai bine pentru stratul de comandă sau pentru o cantitate mică de lipici JavaScript.

Pentru categoriile complete de legare, semantică și exemple, consultați articolul din pachet: Shiny Bindings.

Command API

shiny.webawesome acoperă cele mai comune modele de interacțiune prin pachete generate, legături strălucitoare și ajutoare de actualizare. Dar, uneori, o aplicație trebuie să ajungă direct la un element de browser live: setați o proprietate, apelați o metodă sau adăugați un mic fragment JavaScript local de browser.

Pentru aceste cazuri, pachetul oferă un API de comandă restrâns. Cei doi asistenti principali de pe partea serverului sunt wa_set_property() şi wa_call_method(). Ei permit codului Shiny să trimită comenzi unidirecționale către un element de browser identificat de idfie prin alocarea unei valori unei proprietăți active, fie invocând o metodă din partea browserului.

Dacă o componentă are deja un ajutor de legare sau actualizare, acesta ar trebui să rămână de obicei prima alegere. Stratul de comandă este pentru cazurile care se încadrează chiar în afara acelor căi încorporate, în care cea mai simplă soluție este încă de a spune componentei browser existente să facă un lucru specific.

Pachetul include si wa_js() pentru un alt tip de muncă: lipici JavaScript mic, local în aplicație. Acest lucru este util atunci când piesa lipsă este logica din partea browserului, cum ar fi ascultarea unui eveniment, citirea stării componentei live sau publicarea unei valori derivate înapoi în Shiny cu Shiny.setInputValue().

Pentru mai multe detalii și exemple, consultați articolul din pachet: Command API.

Concluzie

shiny.webawesome aduce o bibliotecă de componente bogată vizual în Shiny, rămânând în același timp aproape de Web Awesome din amonte. Această combinație oferă componente șlefuite, utilități utile de aspect și stil și un flux de lucru în care documentația și exemplele din amonte rămân direct relevante pe parcursul dezvoltării aplicației.

Pentru mai multe exemple, articole mai lungi și material de referință complet, consultați site-ul web al pachetului: shiny-webawesome.org.


Se anunță shiny.webawesome: un pachet de interfață web pentru R/Shiny a fost postat pentru prima dată pe 18 iunie 2026 la 5:09 am.

Dominic Botezariu
Dominic Botezariuhttps://www.noobz.ro/
Creator de site și redactor-șef.

Cele mai noi știri

Pe același subiect

LĂSAȚI UN MESAJ

Vă rugăm să introduceți comentariul dvs.!
Introduceți aici numele dvs.