You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
get_query_param(field=NULL, session=shiny::getDefaultReactiveDomain())
# field | If provided, retrieve only a param with this name. (Otherwise, return all params)# session | The Shiny session
什么是路由?
路由描述的是 URL 与 UI 之间的映射关系,这种映射是单向的,即 URL 变化引起 UI 更新(无需刷新页面)。
route 和router区别
/users -> getAllUsers()
/users/count -> getUsersCount()
,当访问/users
的时候,会执行getAllUsers()
函数;当访问/users/count
的时候,会执行getUsersCount()
函数。服务器端路由
route("/", shiny::tags$div(shiny::tags$span("Hello world")))
和route("main", shiny::tags$div(h1("Main page"), p("Lorem ipsum.")))
这里定义了两条路由:当访问/
的时候,会返回一个包含"Hello world"
文本,当访问main
时,返回一个包含一个主标题和一个段落的<div>
元素。实现shiny的路由包shiny.router
下载和安装
install.packages("shiny.router")
常用函数
(1)change_page
说明:向客户端reactive input binding发送一条消息,告诉page.js相应地更新窗口URL,然后告诉客户端shiny的reactive input binding已经更改,router会收到这个变化的通知,
get_page()
等相似函数也会收到该通知。在链接中添加"/#!/"
前缀用法:
(2)disable_bootstrap_on_bookmark
说明:当用户打开指定的书签时,此函数会动态删除引导依赖项。 它应该插入到引导页面的头部。
用法:
observe({ disable_bootstrap_on_bookmark("home_page") })
(3)get_page
说明:该函数提取的是哈希后面的虚拟路径(virtual path)部分。如果输入没有值,即当前页面信息不可用,函数将返回 FALSE。
用法:
observe({ get_page(session) })
(4)get_query_param
说明:检索作为请求页面一部分的任何参数的便利函数。返回的参数值来自http::parse_url()也正由于这个原因,只有在url变化后,该函数才能查询在url上变化的参数
用法:
(5)is_page
说明:如果我们不在指定的页面上,告诉反应链停止。这会帮助我们确保不会浪费时间为当前未显示的页面重新渲染UI。
用法:
(6)route_link
说明:链接中添加 "/#!/" 前缀
用法:
route_link(path)
(7)router_ui
说明:创建shiny的ui
用法:
(8)router_server
说明:设置shiny的主页面的server和环境
用法:
(9)route
说明:创建单独路由
用法:
(10)parse_url_path
说明:提取有关URL路径和跟在问号(?)符号后面的参数的信息。
用法:
(11)PAGE_404_ROUTE
说明:默认的404页面
用法:
PAGE_404_ROUTE
(12)page404
说明:router_ui里的404页面
用法:
实例
(1)创建初始应用程序
(2)安装并添加依赖项
(3)填充内容
从UCSCXena下载Lung Cancer (Raponi 2006)的phenotype数据集,处理后转换为RData文件,保存于
app/logic/Lung Cancer.RData
创建首页
cohort页面,使用a2函数读取数据
(4)添加404页
(5)将 UI 模块包装
(6)添加按钮跳转导航
(7)读取并显示参数
在该页面如何change_page都返回"cohort"
(8)在url改变参数时改变selectinput
(9)减少输出
该情况下,处于home页面时也会执行该函数并输出
添加is_page后在cohort页面才执行该函数并输出
The text was updated successfully, but these errors were encountered: