Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting started using JSPM #8

Open
peteruithoven opened this issue May 5, 2016 · 0 comments
Open

Getting started using JSPM #8

peteruithoven opened this issue May 5, 2016 · 0 comments

Comments

@peteruithoven
Copy link

peteruithoven commented May 5, 2016

Hi folks I wanted to share how you can go through your getting started using JSPM. Benefits include no manual config file and es6 out of the box.

Use the same data source.

Installation of jspm & dependencies:

npm init -y
npm install -D jspm
jspm init -y
jspm install react@0.14.8 react-dom@0.14.8  npm:react-d3-core npm:react-d3-basic json

HTML file: index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>React D3 getting started</title>
    <script src="jspm_packages/system.js" charset="utf-8"></script>
    <script src="config.js" charset="utf-8"></script>
    <script type="text/javascript">
      System.import('./main.js');
    </script>
  </head>
  <body>
    <div id="chart"></div>
  </body>
</html>

Javascript file: main.js

import chartData from './user_sample.json!';
import React from 'react';
import ReactDOM from 'react-dom';
import { LineChart } from 'react-d3-basic';
// loading chart data from json file using json-plugin
import chartData from './user_sample.json!';

const width = 700;
const height = 300;
const margins = { left: 100, right: 100, top: 50, bottom: 50 };
const title = 'User sample';
// chart series,
// field: is what field your data want to be selected
// name: the name of the field that display in legend
// color: what color is the line
const chartSeries = [
  {
    field: 'BMI',
    name: 'BMI',
    color: '#ff7f0e'
  }
];
// your x accessor
const x = (d) => d.index;

// Leaving out the Chart from the regular getting started because it didn't 
// nest the LineChart inside it properly and it didn't seem to be necessary. 
ReactDOM.render(
  <LineChart
    margins={margins}
    title={title}
    data={chartData}
    width={width}
    height={height}
    chartSeries={chartSeries}
    x={x}
  />
, document.getElementById('chart')
);

Now you can serve the folder in a web server and visit this index.html in a browser.

You can also easily create a useful npm start with a webserver and hot reloading by:

npm install -D serve chokidar-socket-emitter

Alter index.html

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>React D3 getting started</title>
    <script src="../../jspm_packages/system.js" charset="utf-8"></script>
    <script src="../../config.js" charset="utf-8"></script>
    <script type="text/javascript">
      System.trace = true;
      System.import('systemjs-hot-reloader/default-listener.js');
      System.import('./index.js');
    </script>
  </head>
  <body>
    <div id="chart"></div>
  </body>
</html>

Add npm script:

  "scripts": {
    "start": "serve & chokidar-socket-emitter"
  },

Now you can run npm start and visit localhost:3000

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant