前文回顾

在本系列文章中,我们已经介绍了AngularVue框架下 WijmoJS 的玩法。

而今天,我们将展示如何使用 WijmoJS 来搭建一款具备独特创新性、出色性能和简单代码逻辑的 React 应用。

React简介

由于React设计思想极其独特,属于革命性创新,即只利用简单的代码逻辑,实现出众的性能。自13年开源以来,被越来越多的人关注和使用,甚至认为它可能是将来 Web 开发的主流工具。

React主要用于构建UI。你可以在React里传递多种类型的参数,如声明代码。React可以帮助你渲染出UI和静态的HTML DOM元素。当然,你也可以传递动态变量、甚至是可交互的应用组件。其衍生的 React Native 项目(不清楚RN是什么的,请点击这里),目标更是宏伟:用写 Web App 的方式去写 Native App。相信一旦RN技术发展成熟,整个互联网行业都会被颠覆,同一组人只需要写一次 UI ,就能同时运行在服务器、浏览器和手机中。那么,同样是独具前瞻性的纯前端控件集WijmoJS,怎能不提前采取行动,拥抱整个行业的未来?

WijmoJS VS React

本文,我们将向你展示如何将WijmoJS添加到用React编写的简单应用程序中。

在框架中创建和维护应用程序的基本步骤如下:

l 安装适当的CLI(命令行界面实用程序)以生成,运行,维护和部署应用程序。

l 使用CLI创建应用程序。

l 使用NPM将Wijmo添加到应用程序。

l 导入您要使用的组件并添加适当的标记。

第1步,创建一个新的React应用程序
按照以下步骤创建一个新的React应用,启动并运行:

第2步,添加WijmoJS模块
在VS Code中打开“src / App.js”文件并导入你想要使用的元素。在这里,我们将导入WijmoJS的css样式以及CollectionView,FlexGrid,FlexChart和FlexChartSeries组件。

    import React, { Component } from 'react';

    import logo from './logo.svg';

    import './App.css';

    // import Wijmo styles and components

    import 'wijmo/styles/wijmo.css';

    import { CollectionView } from 'wijmo/wijmo';

    import { FlexGrid } from 'wijmo/wijmo.react.grid';

    import { FlexChart, FlexChartSeries } from 'wijmo/wijmo.react.chart';

    // apply Wijmo license key

    import { setLicenseKey } from 'wijmo/wijmo';

    setLicenseKey('your key goes here');

    class App extends Component {

本段代码除了导入我们想要的WijmoJS模块外,还会自动匹配WijmoJS许可证密钥从应用程序中删除保护水印。

第3步,向控件添加数据
现在你已经可以在应用程序中使用WijmoJS了。为了帮助演示,让我们开始给应用程序一些基础数据。

    class App extends Component {

      constructor(props) {

        super(props);

        this.state = {

          data: this.getData()

        };

      }

      getData() {

        var countries = 'US,Germany,UK,Japan,Italy,Greece'.split(','),

            data = [];

        for (var i = 0; i < countries.length; i++) {

          data.push({

            country: countries[i],

            sales: Math.random() * 10000,

            expenses: Math.random() * 5000,

            downloads: Math.round(Math.random() * 20000),

          });

        }

        return new CollectionView(data);

      }

      render() {

    // …

本段代码的目的是:将“数据”成员添加到App组件中。

注意getData返回一个CollectionView而不是一个常规数组。 CollectionView类支持排序,筛选,分组,货币和通知。 在这个例子中,我们将它用作网格和图表的数据源。

第4步,将React控件添加到应用程序
将表格和图表添加到应用程序,请编辑“src / App.js”文件,如下所示。

    class App extends Component {

      constructor(props) {

        // … no change

      }

      getData() {

        // no change

      }

      render() {

        return (

          <div className="App">

            <header className="App-header">

              <img src={logo} className="App-logo" alt="logo" />

              <h1 className="App-title">Welcome to React and Wijmo</h1>

            </header>

            <p className="App-intro">

              To get started, edit <code>src/App.js</code> and save to reload.

            </p>

            <div className="App-panel">

              <FlexGrid itemsSource={this.state.data}/>

              <FlexChart itemsSource={this.state.data} bindingX="country">

                <FlexChartSeries name="Sales" binding="sales"/>

                <FlexChartSeries name="Expenses" binding="expenses"/>

                <FlexChartSeries name="Downloads" binding="downloads"/>

              </FlexChart>

            </div>

          </div>

        );

      }

    }

第5步,更新样式表

在保存文件之前,编辑“src / App.css”文件以定义“App-panel”元素使用的布局。

     .App-intro {

      font-size: large;

    }

    .App-panel {

      margin: 0 48pt;

    }

    .App-panel .wj-control {

      display: inline-block;

      vertical-align: top;

      width: 400px;

      height: 300px;

    }

    @keyframes App-logo-spin {

      from { transform: rotate(0deg); }

      to { transform: rotate(360deg); }

    }

第6步,在浏览器中运行
现在按ctrl + S保存更改并切换回浏览器以查看更改的结果:

由于表格和图表绑定到同一个CollectionView,因此对表格中的数据所做的任何更改都会自动反映在图表中。 例如,您可以单击列标题对数据进行排序或使用键盘编辑一些值。

总结

    1. 将WijmoJS集成到现代JavaScript应用程序中只需要使用NPM进行安装并从库中导入所需的组件即可。
    2. 使用WijmoJS能够确保Web应用在不同的框架中使用完全相同的UI组件,以便您可以更轻松地使用两个或多个框架,或者在未来随意切换框架。

用WijmoJS搭建您的前端Web应用 —— React的更多相关文章

  1. 一个小时搭建一个全栈 Web 应用框架

    把想法变为现实的能力是空想家与实干家的区别.不管你是在一家跨国公司工作,还是正在为自己的创业公司而努力,那些有能力将创意转化为真正产品的人,都具有宝贵的技能并拥有明显的实力.如果你能在不到一个小时的时 ...

  2. 前端Web浏览器基于Flash如何实时播放监控视频画面(前言)之流程介绍

    [关键字:前端浏览器如何播放RTSP流画面.前端浏览器如何播放RTMP流画面] 本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 考虑到视频延 ...

  3. 前端Web浏览器基于Flash如何实时播放监控视频画面(四)之使用videoJs‘拉流’

    本片文章只是起到抛砖引玉的作用,能从头到尾走通就行,并不做深入研究.为了让文章通俗易懂,尽量使用白话描述. 0x001: 下载videoJs 对于Video.js 5.x及更低版本,Flash技术(v ...

  4. 如何搭建一个简易的 Web Terminal(一)

    前言 在介绍本篇文章的时候,先说一下本篇文章的一些背景.笔者是基于公司的基础建设哆啦 A 梦(Doraemon)一些功能背景写的这篇文章,不了解.有兴趣的同学可以去 袋鼠云 的 github 下面了解 ...

  5. 搭建Eclipse、Resin Web开发环境

    搭建Eclipse.Resin Web开发环境 一.当然是安装java开发环境 参看: Java环境的搭建 http://www.cnblogs.com/ghj1976/archive/2010/04 ...

  6. Springboot搭建SSM+JSP的web项目

    Springboot搭建SSM+JSP的web项目 一:创建项目结构: 项目结构分为三个部分: 1 后端项目开发文件: 包: Util         工具包 Mapper      db层 Serv ...

  7. CentOS7下搭建LAMP+FreeRadius+Daloradius Web管理

    注意:本文所有命令均在root命令下执行. freeradius服务官网:http://freeradius.org/ daloradius Web管理页面官网:https://sourceforge ...

  8. CentOS6.5下搭建LAMP+FreeRadius+Daloradius Web管理和TP-LINK路由器、H3C交换机连接,实现,上网认证和记账功能

    什么是RADIUS服务: RADIUS:(Remote Authentication Dial In User Service)中文名为远程用户拨号认证服务,简称RADIUS,是目前应用最广泛的AAA ...

  9. 【转】前端Web开发MVC模式-入门示例

    前端Web开发MVC模式-入门示例 MVC概论起初来之桌面应用开发.其实java的structs框架最能体现MVC框架:model模型是理解成服务器端的模块程序:view为发送给客服端的内容:cont ...

随机推荐

  1. [文章汇总]ASP.NET Core框架揭秘[最近更新:2018/10/31]

    之前一段时间都在个人公众号账号“大内老A”发布关于ASP.NET Core的系列文章,很多人留言希望能够同步到这里,所以在这里 对这些文章做一个汇总,以便于PC端阅读.如果说微软官方文档主要关于ASP ...

  2. 浅析Diffie–Hellman

    一.作者 这个密钥交换方法,由惠特菲尔德·迪菲(Bailey Whitfield Diffie).马丁·赫尔曼(Martin Edward Hellman)于1976年发表. 二.说明 它是一种安全协 ...

  3. Java互联网架构-直播互动平台高并发分布式架构应用设计

    概述 网页HTML 静态化: 其实大家都知道网页静态化,效率最高,消耗最小的就是纯静态化的 html 页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法, ...

  4. JVM,Tomcat与OSGi类加载机制比较

    首先一个思维导图来看下Tomcat的类加载机制和JVM类加载机制的过程 类加载 在JVM中并不是一次性把所有的文件都加载到,而是一步一步的,按照需要来加载. 比如JVM启动时,会通过不同的类加载器加载 ...

  5. MySQL 千万级 数据库或大表优化

    首先考虑如下因素: 1.数据的容量:1-3年内会大概多少条数据,每条数据大概多少字节: 2.数据项:是否有大字段,那些字段的值是否经常被更新: 3.数据查询SQL条件:哪些数据项的列名称经常出现在WH ...

  6. Java设计模式之单例模式,笔记完整到不敢想象

    单例模式: 作用 保证一个类只有一个实例,并且提供一个访问该实例的全局访问入口 单例模式的常用 1.Windows的任务管理器2.Windows的回收站,也是一个单例应用3.项目中的读取配置文件的对象 ...

  7. Java软件工程师面试常见问题集锦之一

    1.面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象 ...

  8. [Swift]LeetCode265.粉刷房子 II $ Paint House II

    There are a row of n houses, each house can be painted with one of the k colors. The cost of paintin ...

  9. [Swift]LeetCode725. 分隔链表 | Split Linked List in Parts

    Given a (singly) linked list with head node root, write a function to split the linked list into k c ...

  10. [Swift]LeetCode767. 重构字符串 | Reorganize String

    Given a string S, check if the letters can be rearranged so that two characters that are adjacent to ...