2016-03-24 2 views
0

Я могу найти много документации для использования WebComponent с использованием JSX в React. Ну, это довольно прямолинейно ...ReactJS использует веб-компонент в JavaScript

Но как использовать веб-компонент в JavaScript с помощью ReactJS ??

render: function(){ 
    React.DOM.div {}, 
    MyWebComponent {}, "hello" 

Где MyWebComponent является компонентом, с которым я хочу работать.

+0

Я не понимаю, что вы пытаетесь достичь ... – erichardson30

ответ

2

Как указано in the official react site вы должны быть в состоянии использовать веб-компоненты с реагировать

render: function(){ 
    return <div><MyWebComponent>hello</MyWebComponent></div>; 
} 

здесь тот же пример в чистом JS

render: function render() { 
    return React.createElement(
    "div", 
    null, 
    React.createElement(
     MyWebComponent, 
     null, 
     "hello" 
    ) 
); 
} 
+0

это JSX. Как я упоминал, я использую чистый JavaScript и не могу использовать JSX для моей среды. – Kursion

+0

React.createElement - это путь, затем https://babeljs.io/repl/#?evaluate=true&presets=es2015%2Creact%2Cstage-2&code=a%20%3D%20%7B%0Arender%3A%20функция ()% 7B% 0A% 20% 20return% 20% 3Cdiv% 3E% 3CMyWebComponent% 3Ehello% 3C% 2FMyWebComponent% 3E% 3C% 2Fdiv% 3E% 3B% 0A% 7D% 0A% 7D – G3z

3

В JavaScript react.createElement принимает элемент или componant как первый аргумент, стили в качестве второго аргумента, дети как третий аграмент.

  import customComponent from 'my-custom-component'; 
      var child = React.createElement(customComponent, null, 'Text Content'); 
      var Element = React.createElement('div', { className: 'my-class' }, child); 


      render: function(){ 
       {Element} 
      } 

или вы можете сделать это

... 
import customComponent from 'my-custom-component'; 
... 

render: function(){ 
     {React.createElement('div', { className: 'my-class' },customComponent);} 
} 
+0

да, но скажите, что у меня есть ' '. Теперь что такое webcomponent? Это не работает: http://jsfiddle.net/g4y4kgw7/ – Kursion

+0

@Kursion Сценарий, который вы опубликовали, не является javascript, это всего лишь одна большая синтаксическая ошибка. Когда вы говорите 'webcomponent', вы имеете в виду компонент React, который вы создали, или HTML5 рабочий проект пользовательского элемента с теневым DOM и все звонки и свистки, которые идут с ним? – dannyjolie

+0

Когда я говорю 'webcomponent', я имею в виду любой действительный дочерний элемент. Это может быть любой допустимый элемент, который может быть отображен. любой действительный элемент, который может быть отображен 'var child = React.createElement (CustomComponent, null, null);' –