Shiny Shiny.shinyapp.$inputValues
acts like a store of state. I thought it would be fun to let vuejs
react to changes in Shiny
input values. This example is intentionally very simple to hopefully self-explain.
I have assembled vueR
package, like d3r
and reactR
, to offer helpers for vuejs
. For this example please install vueR
, or just add tags$script(src = "https://unpkg.com/vue@2.2.6")
to the tagList()
.
devtools::install_github("timelyportfolio/vueR")`
library(shiny)
library(htmltools)
ui <- tagList(
textInput("textinput", label="Enter Something"),
div(id="app","from Vue: {{textinput}}"),
textOutput("textrepeat"),
tags$script(
"
// wait for shiny:connected so that Shiny.shinyapp.$inputValues will exist
$(document).on('shiny:connected', function(a,b,c){
var vb = new Vue({
el: '#app',
data: Shiny.shinyapp.$inputValues
});
});
"
),
vueR:::html_dependency_vue()
)
server <- function(input,output){
# repeat text typed in textinput with Shiny
output$textrepeat <- renderText({paste0("from Shiny: ", input$textinput)})
}
shinyApp(ui,server)