• Web开发者福音!创建第一个Vite支持的Web应用(2/2)


    Vite 是一个基于开发服务器的构建工具,它在启动应用程序之前组装 JavaScript 代码,同时Vite还有助于在进行更改时减少加载速度,并允许您几乎可以立即查看结果。

    在这篇文章中,我们将解决前端 Web 开发人员的需求,并向您展示如何使用 Vite 库来显着提高 Javascript 客户端应用程序的启动/更新速度。

    Vite将代码创建为ES模块——现代浏览器可以用来加载JavaScript的模块,在依赖较大的情况下,Vite 会预先捆绑这些模块,以减少浏览器对 Web 服务器的请求数量。在以下部分中,我们将向您展示如何将Vite添加到由DevExtreme提供支持的React Reporting应用程序中。

    在上文中,我们已为大家介绍如何创建示例DevExtreme应用、配置应用程序来使用Vite和DevExpress Reports,具体步骤可点击查看回顾>>

    接下来我们将继续介绍如何添加DevExpress Document Viewer和Report Designer组件等。

    点击获取DevExpress v22.1正式版

    添加DevExpress Document Viewer和Report Designer组件

    添加Document Viewer的步骤

    将 src/pages/document-viewer/document-viewer.tsx 文件内容替换为以下内容:

    1. import React from 'react';
    2. import ko from 'knockout';
    3. import 'devexpress-reporting/dx-webdocumentviewer';
    4. import './document-viewer.scss';
    5. class ReportViewer extends React.Component {
    6. constructor(props) {
    7. super(props);
    8. this.viewerRef = React.createRef();
    9. this.reportUrl = ko.observable("Invoice");
    10. this.requestOptions = {
    11. host: "https://localhost:5001/",
    12. invokeAction: "DXXRDV"
    13. };
    14. }
    15. render() {
    16. return (<div ref={this.viewerRef} data-bind="dxReportViewer: $data">div>);
    17. }
    18. componentDidMount() {
    19. ko.applyBindings({
    20. reportUrl: this.reportUrl,
    21. requestOptions: this.requestOptions
    22. }, this.viewerRef.current);
    23. }
    24. componentWillUnmount() {
    25. ko.cleanNode(this.viewerRef.current);
    26. }
    27. };
    28. export default () => (
    29. <React.Fragment>
    30. <h2 className={'content-block'}>Document Viewerh2>
    31. <div className={'content-block'}>
    32. <div className={'dx-card responsive-paddings'}>
    33. <div style={{ width: "100%", height: "700px" }}>
    34. <ReportViewer />
    35. div>
    36. div>
    37. div>
    38. React.Fragment>
    39. );

    以下属性指定报表名称:

    this.reportUrl = ko.observable("Invoice");

    主机指定服务器端应用地址:

    host: https://localhost:5001/

    最后在 src/pages/document-viewer/document-viewer.scss 页面添加如下内容:

    1. @import url("../../../node_modules/jquery-ui/themes/base/all.css");
    2. @import url("../../../node_modules/devextreme/dist/css/dx.material.orange.light.css");
    3. @import url("../../../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.common.css");
    4. @import url("../../../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.material.orange.light.css");
    5. @import url("../../../node_modules/devexpress-reporting/dist/css/dx-webdocumentviewer.css");

    添加DevExpress Report Designer的步骤

     src/pages/report-designer/report-designer.tsx 文件内容替换为以下内容:

    1. import React from 'react';
    2. import ko from 'knockout';
    3. import 'devexpress-reporting/dx-reportdesigner';
    4. import './report-designer.scss';
    5. class ReportDesigner extends React.Component {
    6. constructor(props) {
    7. super(props);
    8. this.designerRef = React.createRef();
    9. this.reportUrl = ko.observable("Invoice");
    10. this.requestOptions = {
    11. host: "https://localhost:5001/",
    12. getDesignerModelAction: "/DXXRD/GetDesignerModel"
    13. };
    14. }
    15. render() {
    16. return (<div ref={this.designerRef} data-bind="dxReportDesigner: $data">div>);
    17. }
    18. componentDidMount() {
    19. ko.applyBindings({
    20. reportUrl: this.reportUrl,
    21. requestOptions: this.requestOptions
    22. }, this.designerRef.current);
    23. }
    24. componentWillUnmount() {
    25. ko.cleanNode(this.designerRef.current);
    26. }
    27. };
    28. export default () => (
    29. <React.Fragment>
    30. <h2 className={'content-block'}>Report Designerh2>
    31. <div className={'content-block'}>
    32. <div className={'dx-card responsive-paddings'}>
    33. <div style={{ width: "100%", height: "700px" }}>
    34. <ReportDesigner />
    35. div>
    36. div>
    37. div>
    38. React.Fragment>
    39. );

    以下属性指定报表名称:

    this.reportUrl = ko.observable("Invoice");

    主机指定服务器端应用地址:

    host: https://localhost:5001/

    因此,将以下内容添加到 src/pages/report-designer/report-designer.scss 页面以完成此步骤:

    1. @import url("../../../node_modules/jquery-ui/themes/base/all.css");
    2. @import url("../../../node_modules/devextreme/dist/css/dx.material.orange.light.css");
    3. @import url("../../../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.common.css");
    4. @import url("../../../node_modules/@devexpress/analytics-core/dist/css/dx-analytics.material.orange.light.css");
    5. @import url("../../../node_modules/@devexpress/analytics-core/dist/css/dx-querybuilder.css");
    6. @import url("../../../node_modules/devexpress-reporting/dist/css/dx-webdocumentviewer.css");
    7. @import url("../../../node_modules/devexpress-reporting/dist/css/dx-reportdesigner.css");

    运行报表后端应用程序

    Web报表组件需要一个后端应用程序来存储和处理报告,运行后端应用程序以确定地址,并将该地址分别指定为 src/pages/document-viewer/document-viewer.tsx和src/pages/report-designer/report-designer中 ReportViewer和ReportDesigner组件的主机选项.tsx文件。

    如果您刚刚创建了一个后端应用程序,可以从模板中创建一个TestReport,除了这个简单的报告,您还可以加载我们的发行版附带的报表。要加载报表,请在官方的WinForms Reporting演示中打开 Invoice 模块,切换到 Designer,然后将报表另存为REPX文件。在Visual Studio Report Designer中打开TestReport 报表,然后单击报表智能标记中的打开/导入以加载您保存的REPX文件。

    运行客户端应用程序

    确保后端应用程序正在运行,导航到devextreme-react-sample文件夹,然后执行以下命令:

    npm install
    npm run start

    完成后,应用程序应如下所示:

    更多DevExpress线上公开课、中文教程资讯请上中文网获取

     

  • 相关阅读:
    使用EFCore连接SQLite
    【云原生系列】第一讲:什么是云计算
    中国各省市相关图标
    分享几个常用的国外英文论文文献数据库,先收藏再说
    Android 中如何使用 App Links
    企业级容器云PaaS解决方案【厚PaaS+轻应用+微服务】---(2)
    一文学会TextureID渲染到Surface
    【软件测试】selenium3
    【数据结构】数组和字符串(一):矩阵的数组表示
    【毕业设计】基于RFID的门禁系统 - 单片机 物联网 嵌入式 stm32
  • 原文地址:https://blog.csdn.net/AABBbaby/article/details/126578644