Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

196
Visualizações
Diferencia entre los patrones conditionalPanel y uiOutput/req

Considere la siguiente aplicación de muestra que muestra dos formas de mostrar la interfaz de usuario en función de una condición:

 library(shiny) ui <- fluidPage( tagList( checkboxInput("toggle", "Toggle"), conditionalPanel( condition = "output.condition", tags$p("Output from conditionalPanel") ), uiOutput("ui") ) ) server <- function(input, output, session) { # conditionalPanel output$condition <- reactive(input$toggle) outputOptions(output, "condition", suspendWhenHidden = FALSE) # uiOutput output$ui <- renderUI({ req(isTRUE(input$toggle)) tags$p("Output from uiOutput") }) } shinyApp(ui, server)

En términos de front-end, los patrones conditionalPanel y uiOutput / req parecen comportarse de manera similar. ¿Hay alguna diferencia, especialmente relacionada con el rendimiento, que haría que un patrón fuera más beneficioso?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Estas dos formas tienen diferentes propósitos . conditionalPanel crea una expresión de JavaScript que "escucha" una condición específica, por ejemplo, si una entrada es TRUE o FALSE . No es necesario que suceda nada en el lado del servidor.

renderUI() por el contrario es muy flexible. Por supuesto, puede imitar el comportamiento de conditionalPanel pero también es capaz de generar básicamente cualquier cosa mediante la creación de un código HTML (UI) diferente.

Con respecto a la velocidad: conditionalPanel casi siempre debería ser más rápido. Además, no es el rendimiento el que decide entre ambas opciones, sino el objetivo .

aplicación de ejemplo

 library(shiny) ui <- fluidPage( tagList( checkboxInput("toggle", "Toggle"), conditionalPanel( # listens whether toggle is TRUE or FALSE condition = "input.toggle", tags$p("Output from conditionalPanel") ), uiOutput("ui") ) ) server <- function(input, output, session) { # create a plot output$myplot <- renderPlot({ plot(mtcars$mpg, mtcars$cyl) }) # create some text output$mytext <- renderText({ "I am pointless" }) # uiOutput output$ui <- renderUI({ input$toggle if (rnorm(1) > 0){ plotOutput("myplot") } else { textOutput("mytext") } }) } shinyApp(ui, server)
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda