オブザーバー vs. リアクティブ

Rで作るShiny Webアプリケーション

Ramnath Vaidyanathan

VP of Product Research

リアクティブフロー

Shiny アプリのリアクティブフローを示す図

Rで作るShiny Webアプリケーション

オブザーバー (1/2)

ユーザーが名前を入力すると、モーダルダイアログでパーソナライズされた挨拶が表示されるアプリ

Rで作るShiny Webアプリケーション

オブザーバー (2/2)

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

server <- function(input, output, session){
  observe({
    showNotification(
      paste("You entered the name", input$name)
    )
  })
}
Rで作るShiny Webアプリケーション

オブザーバー vs. リアクティブ

役割

  • reactive() は副作用なしで値を計算します。
  • observe() は副作用を伴う処理を実行します。

違い

  • 戻り値: リアクティブ式は値を返しますが、オブザーバーは返しません。
  • 評価: オブザーバーは依存関係の変化に即時反応し、リアクティブ式は遅延評価です。
  • 副作用: オブザーバーは副作用が主目的です。リアクティブ式は副作用を持ってはいけません。
Rで作るShiny Webアプリケーション

演習に進みましょう

Rで作るShiny Webアプリケーション

Preparing Video For Download...