2016-09-19 1 views
0

В настоящее время мы используем реакцию вместе с requirejs с перекосом jsx babel. Мы хотели бы, чтобы написать наш код так:Зависимость от реакции должна начинаться с заглавной буквы для работы JSX

define([ 
    'react' 
], function(react) { 
    return react.createClass({ 
     render: function() { 
      return (
        <div> 
         excellent code 
        </div> 
      ) 
     } 
    }); 
}); 

С строчной «реагируют», так как это не является функцией конструктора или класса.

Но если мы делаем это так, то transpiled код попытается использовать переменную React, и все сломает:

(...) 
render: function() { 

    return React.createElement(
     'div', 
     null, 
(...) 

ли возможность изменить переменную, что transpiled код используется для реактивный модуль?

+1

'React.createElement' действительно является функцией конструктора, но что происходит под капотом для вас. Это ваши единственные аргументы в пользу того, что они нуждаются в нижнем регистре? – azium

+0

Я хочу, чтобы все переменные в моем проекте соответствовали нашему стандарту кода, а именно, что только функции-конструкторы начинаются с буквы верхнего регистра. Реакция не является конструкторской функцией (фактически не создается элемент CreateElement). Функция-конструктор - это то, что вы осмысленно можете написать «новое» перед. –

ответ

1

Вы можете использовать настройку прагмы плагинов для Babel для генерации другого выражения. Таким образом, вы можете использовать JSX для совершенно разных вещей.

Попробуйте это в вас .babelrc файле:

{ 
    "presets": ["es2015", "stage-0", "react"], 
    "plugins": [ 
    ["transform-react-jsx", { 
     "pragma": "react.createElement" 
    }] 
    ] 
} 
+0

Прохладный, который выглядит так же, как я хочу, может быть полезен и для других вещей, спасибо! –

+0

Это так. Существуют другие библиотеки, такие как [Preact] (https://preactjs.com/) или [Deku] (https://github.com/anthonyshort/deku) с использованием синтаксиса JSX. – Maurice

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