2016-11-21 4 views
2

Я хочу использовать это Chart JS reactJs wrapper library.используя библиотеку без 'require' при использовании CDN

Я потребляю library from a CDN, так как я не настроил процесс связывания модулей для этого проекта. Я знаю, что мог, но задавался вопросом, как использовать эту библиотеку, не используя require. Я думаю, было бы полезно дать ответ, чтобы объяснить, как это сделать для людей, которым все еще немного неудобно некоторые из новых методов js.

В среагировать обертку Chart JS Например, вы увидите, что она показывает:

var LineChart = require("react-chartjs").Line; 

var MyComponent = React.createClass({ 
    render: function() { 
    return <LineChart data={chartData} options={chartOptions} width="600" height="250"/> 
    } 
}); 

Без require есть в любом случае, чтобы присвоить такое же значение LineChart при использовании CDN?

ответ

1

Посмотрите файл, который CDN предоставляет и узнайте сами.

Он имеет следующий вид:

(function (root, factory) { 
    // Do some stuff to detect the environment 
    // When everything fails, just assign a global variable: 

    root["react-chartjs"] = factory(root["React"], root["ReactDOM"], root["Chart"]); 


})(this, function (...) { 
    .... 
}); 

Где root является глобальным объектом (window в браузере) и factory это просто функция, которая принимает зависимости и возвращает библиотеку.

Чтобы получить LineChart:

window['react-chartjs'].Line 

Имейте в виду factory нуждается React, ReactDOM и Chart. И предполагает, что все это будет в глобальной переменной, названной так же.

+0

приятный @marco за это! Я также потребляю «ChartJs» из CDN. Означает ли это, что мне придется изменить настройку? –

+0

Совсем не так, если вы загружаете «ChartJs» перед этим файлом, а «ChartJs» хранится в глобальной переменной с именем «Chart», посмотрите на параметры 'factory' принимает –

+0

работает отлично, BTW, мы можем просто назвать это как «ReactCharJs», так же, как мы можем использовать «React» при загрузке реакции CDN –

Смежные вопросы