Observers vs. reaktivní výrazy

Tvorba webových aplikací se Shiny v R

Ramnath Vaidyanathan

VP of Product Research

Reaktivní tok

Diagram znázorňující reaktivní tok v aplikaci Shiny

Tvorba webových aplikací se Shiny v R

Observers (1/2)

Aplikace, kde uživatel zadá své jméno a obdrží personalizovaný pozdrav v modálním dialogovém okně

Tvorba webových aplikací se Shiny v R

Observers (2/2)

ui <- fluidPage(
  textInput('name', 'Enter your name')
)

server <- function(input, output, session){
  observe({
    showNotification(
      paste("You entered the name", input$name)
    )
  })
}
Tvorba webových aplikací se Shiny v R

Observers vs. reaktivní výrazy

Role

  • reactive() slouží k výpočtu hodnot bez vedlejších efektů.
  • observe() slouží k provádění akcí s vedlejšími efekty.

Rozdíly

  • Návratové hodnoty: Reaktivní výrazy vrací hodnoty, observers nikoli.
  • Vyhodnocení: Observers reagují okamžitě na změny závislostí, reaktivní výrazy jsou líné.
  • Vedlejší efekty: Observers jsou užitečné právě pro vedlejší efekty, reaktivní výrazy je mít NESMÍ.
Tvorba webových aplikací se Shiny v R

Pojďme si procvičit!

Tvorba webových aplikací se Shiny v R

Preparing Video For Download...