Sesuaikan reaktivitas

Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Dean Attali

Shiny Consultant

Tinjauan reaktivitas

  • reactive() dan input$ bersifat reaktif
  • Kode yang bergantung pada variabel reaktif dijalankan ulang saat dependensi berubah
  • Mengakses nilai reaktif menjadikannya dependensi
x <- reactive({
    y() * input$num1 * input$num2
})
Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Isolate

  • Gunakan isolate() agar tidak membuat dependensi reaktif
  • Jika nilai reaktif di dalam isolate() diubah, tidak terjadi apa-apa
x <- reactive({
    y() * isolate({ input$num1 }) * input$num2
})
x <- reactive({
    y() * isolate({ input$num1 * input$num2 })
})
Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Isolasi semua

  • Terkadang Anda ingin mengisolasikan semua reaktif

    x <- reactive({
        isolate({
            y() * input$num1 * input$num2
        })
    })
    
  • Perlu cara memicu x agar berjalan ulang sesuai permintaan

Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Tombol aksi

actionButton(inputId, label, ...)

Tangkapan layar tombol aksi

  • Hanya satu interaksi sederhana: klik
  • Nilai tombol adalah jumlah klik
# Setelah menekan tombol dua kali
str(input$button)
int 2
Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Tombol aksi sebagai pemicu reaktivitas

  • Mengakses nilai input tombol di server memicu reaktivitas

  • Tambahkan tombol ke UI

    actionButton(inputId = "calculate_x", label = "Calculate x!")
    
  • Akses tombol agar menjadi dependensi

    x <- reactive({
        input$calculate_x
    
        isolate({
            y() * input$num1 * input$num2
        })
    })
    
Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Ayo berlatih!

Studi Kasus: Membangun Aplikasi Web dengan Shiny di R

Preparing Video For Download...