1

cdnjs と SystemJS を介して Web アプリケーションで react-virtualized を使用したいと考えています。

私が見たすべての例から、react-virtualized および react ライブラリはローカルにロードされ、Webpack にバンドルされてから Web ページに含まれるようです。SystemJSでインポートするだけで、Webpackなしでcdnjs経由で使用したいと思います。しかし、それを試してみると、React が見つからないというエラーが表示されます。

誰かがこれを以前に試したことがあるかどうか、そしてこれが反応仮想化によってまったくサポートされているかどうか疑問に思っていました。ありがとう。

更新: わかりやすくするために、何をしようとしているのかを示すコードをいくつか含めました。

index.html :

...
<head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/systemjs/0.20.0-alpha.1/system.js"></script>
  <script>
    System.config({
        map: {
            "react":"https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react.js",
            "react-dom":"https://cdnjs.cloudflare.com/ajax/libs/react/15.3.2/react-dom.js",
            "react-virtualized":"https://unpkg.com/react-virtualized/dist/umd/react-virtualized.js"
        }
  </script>
</head>
...

main.jsx :

import React from 'react';
import ReactDOM from 'react-dom';
import {Table, Column} from 'react-virtualized';
...
4

2 に答える 2

2

あなたがしていることは、のUMDビルドを使用して可能ですreact-virtualizedここで行われている例を見ることができます。ただし、それが機能するためにはreact-with-addons、UMD ビルドもインポートする必要があります。react-domreact-virtualized

例えば:

<script src="https://unpkg.com/react/dist/react-with-addons.min.js"></script>
<script src="https://unpkg.com/react-dom/dist/react-dom.min.js"></script>
<script src="https://unpkg.com/react-virtualized/dist/umd/react-virtualized.js"></script>

UMD ビルドは、react-virtualizedReact と ReactDOM がグローバル空間にロードされることを想定しています。

あるいは、SystemJS を使用して公開react-domreact-with-addons、ライブラリのグローバルとしてreact-virtualized消費する方法が必要です。私は SystemJS ユーザーではありませんが、次のようになると思います。

System.config({
  meta: {
    'path/to/react-virtualized.js': {
      globals: {
        React: 'path/to/react-addons-shallow-compare.js',
        ReactDOM: 'path/to/react-dom.js'
      }
    }
  }
});
于 2016-11-21T23:40:52.540 に答える