在本文中,我们将展示如何使用 WijmoJS 与 NPM 和 Webpack 一起来创建最流行的基于 JavaScript 应用程序框架的 Web 应用。 该博客专注于 Facebook 的框架 React,该框架被称为“用于构建用户界面的 JavaScript 库”。它使用 HTML 类语法扩展 JavaScript,以创建组合到应用程序中的组件。 详细了解 WijmoJS 的 React 支持。
本文中我们不会详细介绍 NPM,Webpack 或 React 本身。 这些工具都非常受欢迎,并且有完整的帮助文档,您可以阅读我们关于框架的技术博客,以获得良好的概述。 相反,我们将专注于将 WijmoJS 添加到用 React 编写的简单应用程序中。
在所有框架中创建和维护应用程序的基本步骤都是类似的:
按照以下步骤创建一个新的 React 应用,启动并运行。
在 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 许可证密钥从应用程序中删除保护水印。如果您没有许可证密钥,则可以跳过此步骤。
现在你已经可以在应用程序中使用 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 类支持排序,筛选,分组,货币和通知。在这个例子中,我们将它用作网格和图表的数据源。
将表格和图表添加到应用程序,请编辑“ 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>
);
}
}
在保存文件之前,编辑“ 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); }
}
现在按 ctrl + S 保存更改并切换回浏览器以查看更改的结果:React app
由于表格和图表绑定到同一个 CollectionView,因此对表格中的数据所做的任何更改都会自动反映在图表中。例如,您可以单击列标题对数据进行排序或使用键盘编辑一些值。
使用 Npm 来创建 WijmoJS 的 Angular6 及各版本的应用
使用 Npm 来创建 WijmoJS 的 Ionic 的应用
快如闪电,触控优先。纯前端控件集 WijmoJS,为您的企业应用提供更加灵活的操作体验,在全球率先支持 AngularJS,并提供性能卓越、零依赖的 FlexGrid 和金融图表等多个控件,为您提供易用、轻松的操作体验,全面满足开发所需。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.