Dash 2.15版本新特性介绍
本文示例代码已上传至我的
Github仓库https://github.com/CNFeffery/dash-master
大家好我是费老师,Dash不久前发布了其2.15.0版本,新增了一些实用的特性,下面我们就来一起get其中的重点:
1 在浏览器端回调中获知触发来源
熟悉Dash应用开发的朋友应该知道,针对编排了多个Input角色的常规回调函数,我们可以通过dash.ctx.triggered_id等上下文信息,在每次回调函数被触发时,知晓究竟是哪个Input角色触发了本次的回调函数执行,就像下面这个简单的例子所展示的那样:

app1.py
import dash
from dash import html
import feffery_antd_components as fac
from dash.dependencies import Input, Output
app = dash.Dash(__name__)
app.layout = html.Div(
[
fac.AntdSpace(
[
fac.AntdButton(
'按钮1',
id='button1',
type='primary'
),
fac.AntdButton(
'按钮2',
id='button2',
type='primary'
)
]
),
fac.AntdParagraph(id='demo-output')
],
style={
'padding': 50
}
)
@app.callback(
Output('demo-output', 'children'),
[Input('button1', 'nClicks'),
Input('button2', 'nClicks')],
prevent_initial_call=True
)
def handle_button_click(nClicks1, nClicks2):
return '本次回调触发来源:{}'.format(
dash.ctx.triggered_id
)
if __name__ == '__main__':
app.run(debug=True)
而从2.15.0版本开始,浏览器端回调中同样也支持在回调函数中拿到triggered_id信息,在上面例子的基础上,我们将常规回调函数改造为下面的浏览器端回调函数,来看看dash_clientside.callback_context中包含了哪些信息:
app.clientside_callback(
'''(nClicks1, nClicks2) => {
// 打印本次回调上下文信息
console.log(dash_clientside.callback_context)
}''',
Output('demo-output', 'children'),
[Input('button1', 'nClicks'),
Input('button2', 'nClicks')],
prevent_initial_call=True
)
Dash < 2.15.0

Dash >= 2.15.0
可以看到,在新版本中,浏览器端回调中的回调上下文信息新增了triggered_id信息,更加方便了~

2 调试模式下更方便清晰的错误提示
另一项重要的新特性是面向像费老师我这样的Dash组件库开发者的,可以在组件底层自定义需要在Dash的debug工具页面中显示的错误提示信息,从而大幅度提升普通Dash应用开发者的日常体验~
以由我开源维护的网页通用组件库fac中的进度条组件AntdProgress为例(https://fac.feffery.tech/AntdProgress),其percent参数用于设置进度值,取值应在0到1之间:

得益于新版本Dash在底层对于自定义错误提示的支持,我就可以在AntdProgress底层对不符合规范要求的参数值进行检查,并通过Dash调试模式自带的前端控件输出更清晰的错误提示(下面的例子仅做简单演示,我会在由我维护的一系列Dash组件库后续的版本升级中逐步形成更清晰完整的错误提示体系):

更多有关2.15.0版本更新内容的信息请移步https://github.com/plotly/dash/releases/tag/v2.15.0。
以上就是本文的全部内容,对Dash应用开发感兴趣的朋友,欢迎添加微信号CNFeffery,备注“dash学习”加入我的技术交流群,一起成长一起进步。
Dash 2.15版本新特性介绍的更多相关文章
- EOS1.1版本新特性介绍
EOSIO/eos 目前在github的项目活跃度方面排名第一,release版本更新的速度让人应接不暇.今天EOS的大版本1.1发布,我也有幸参与了贡献,本篇文章重点介绍1.1版本的重大功能升级. ...
- xmake v2.1.5版本新特性介绍
2.1.5版本现已进入收尾阶段,此版本加入了一大波新特性,目前正在进行稳定性测试和修复,在这里,先来介绍下新版本中引入了哪些新特性和改进. 1. 提供类似cmake的find_*系列接口,实现各种查找 ...
- CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系
CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...
- C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...
- MyBatis 3.5.2 新特性介绍
1.MyBatis 最新版本 3.5.2 发布 MyBatis最新版本是:3.5.2,发布时间是:2019年7月15日 2.MyBatis 3.5.2 新特征介绍 我们知道,MyBatis 是支持定制 ...
- Java 11 新特性介绍
Java 11 已于 2018 年 9 月 25 日正式发布,之前在Java 10 新特性介绍中介绍过,为了加快的版本迭代.跟进社区反馈,Java 的版本发布周期调整为每六个月一次——即每半年发布一个 ...
- Atitit mac os 版本 新特性 attilax大总结
Atitit mac os 版本 新特性 attilax大总结 1. Macos概述1 2. 早期2 2.1. Macintosh OS (系统 1.0) 1984年2 2.2. Mac OS 7. ...
- dubbox新特性介绍
dubbx是当当网对原阿里dubbo2.x的升级,并且兼容原有的dubbox.其中升级了zookeeper和spring版本,并且支持restfull风格的远程调用. dubbox git地址: h ...
- Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性
Hadoop3.0新特性介绍,比Spark快10倍的Hadoop3.0新特性 Apache hadoop 项目组最新消息,hadoop3.x以后将会调整方案架构,将Mapreduce 基于内存+io+ ...
- [iOS微博项目 - 1.7] - 版本新特性
A.版本新特性 1.需求 第一次使用新版本的时候,不直接进入app,而是展示新特性界面 github: https://github.com/hellovoidworld/HVWWeibo ...
随机推荐
- java8 Steam流及Optional的使用
目录 Stream流: 获取流 1. list获取: 2. Map获取 3. 数组获取 流方法分类: 1. forEach(终结方法) 2. count计数(终结方法) 3.filter过滤 4.li ...
- vue实现word或pdf文档导出的功能
https://www.jianshu.com/p/73915ef6ac89 Vue - element-ui 中预览 word .exce.ppt以及pdf文件 https://blog.csdn. ...
- 二分图的匹配 hdu 1083
***题意:n个学生,p门课,求最大匹配,即p门课是否都有人上*** 匈牙利算法 #include<iostream> #include<cstdio> #include< ...
- php基础之PHP语言学习介绍
前言 PHP是网络安全中需要掌握的一门语言,但是就这么一点儿时间学网络安全,所以不可能特别精通PHP,这里并不是说要求你精通PHP,但是需要对于一些基础代码能够认识.能够编写那么就可以了. 同时,这里 ...
- go 接口学习笔记
这里是对接口在汇编层面上转换和实现的小结,详细了解可参考 Go 语言接口的原理 1. 类型转换:结构体到接口 1.1 结构体方法实现接口 package main type Duck interfac ...
- Redis 使用 hyperLogLog 实现请求ip去重的浏览量
本文为博主原创,转载请注明出处: 未完,待续....
- 神经网络优化篇:详解学习率衰减(Learning rate decay)
学习率衰减 加快学习算法的一个办法就是随时间慢慢减少学习率,将之称为学习率衰减,来看看如何做到,首先通过一个例子看看,为什么要计算学习率衰减. 假设要使用mini-batch梯度下降法,mini-ba ...
- ORACLE Enterprise Manager Database Express(OEM-express)(遇到localhost拒绝访问情况)配置端口和启动方法
1.问题 之前一直进不去ORACLE Enterprise Manager Database Express,显示的是localhost拒绝了访问,经过查阅知道是没有配置相应端口. 2.解决方法 转载 ...
- [转帖]如何使用 sed 命令删除文件中的行
https://zhuanlan.zhihu.com/p/80212245 sed 命令是 Linux 中的重要命令之一,在文件处理方面有着重要作用.可用于删除或移动与给定模式匹配的特定行.-- Ma ...
- [转帖]shell脚本使用expect自动化交互登录远程主机进行批量关机
前文 1.目标主机登录用户都为root,且密码一致 2.目标主机开放启动了SSH服务且22号端口可访问(防火墙未进行拦截) 软件介绍 expect Expect是一个用来实现自动和交互式任务进行通信的 ...