「B/S端开发」DevExtreme初级入门教程(React篇) - 状态管理
DevExtreme React 组件可以在受控和非受控状态管理模式下运行。
受控模式
在受控模式下,父React组件更新DevExtreme组件的状态。它应该通过属性将新值传递给DevExtreme组件,就像以下代码中TextBox组件的value属性一样。
DevExtreme组件引发事件,您应该处理这些事件以更新父组件的状态。仅当用户与组件交互时才会引发这些事件,而不会在您以编程方式更新属性值时引发。 每个事件名称都基于属性名称,例如,value 属性的事件是 onValueChange。 事件处理程序接受一个新的属性值作为参数:
App.js
import React from 'react'; import 'devextreme/dist/css/dx.light.css'; import TextBox from 'devextreme-react/text-box'; class App extends React.Component { constructor(props) { super(props); this.state = { text: 'TEXT' }; this.handleValueChange = this.handleValueChange.bind(this); } render() { return ( <div> <TextBox value={this.state.text} onValueChange={this.handleValueChange} valueChangeEvent="input" /> <br /> <div>{this.state.text}</div> </div> ); } handleValueChange(value) { this.setState({ text: value.toUpperCase() }); } } export default App;
非受控制模式
在非受控制的模式下,DevExtreme组件维护和更新自己的状态。
要在此模式下指定初始属性值,请将默认前缀添加到属性名称。 在下面的示例中,defaultCurrentDate 属性用于定义 currentDate 属性的初始值。
App.js
import React from 'react'; import 'devextreme/dist/css/dx.light.compact.css'; import Scheduler from 'devextreme-react/scheduler'; const appointments = [{ text: 'Website Re-Design Plan', startDate: new Date(2019, 4, 22, 9, 30), endDate: new Date(2019, 4, 22, 11, 30) }, { text: 'Book Flights to San Fran for Sales Trip', startDate: new Date(2019, 4, 22, 12, 0), endDate: new Date(2019, 4, 22, 13, 0), allDay: true }, { text: 'Install New Router in Dev Room', startDate: new Date(2019, 4, 23, 10, 30), endDate: new Date(2019, 4, 23, 16, 30) }]; class App extends React.Component { render() { return ( <Scheduler dataSource={appointments} height={600} editing={false} defaultCurrentDate={new Date(2019, 4, 22)} startDayHour={9} /> ); } } export default App;
DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,到ASP.NET Core或Vue,DevExtreme包含全面的高性能和响应式UI小部件集合,可在传统Web和下一代移动应用程序中使用。 该套件附带功能齐全的数据网格、交互式图表小部件、数据编辑器等。
DevExpress技术交流群5:742234706 欢迎一起进群讨论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-11-12 Kendo UI ListView滚动功能,让Web开发更轻松
2020-11-12 ASP.NET界面开发新功能,DevExpress v20.2增强数据容器控件、优化甘特图控件等
2019-11-12 New!Devexpress WPF各版本支持VS和SQL Server版本对应图