HTML код в JS без кавычек. Как это реализовано в React?

188
13 апреля 2018, 13:28

В методе ReactDOM.render React-a мы можем объявлять компоненты сразу HTML кодом. Вот так:

ReactDOM.render(
<div>
    <WebPage />
</div>, 
document.getElementById('fieldToShow'));

Как я понимаю render() - это метод написанный на JS, а HTML передается в него как аргумент функции. Но ведь JS не может оперировать HTML кодом без кавычек. Например, если я напишу следующий код, то само-собой получу ошибку "Unexpected token <":

function test(<div></div>) {}

Также при выводе HTML из JS функции:

function test(){
    return <div></div>
}

У кого-нибудь есть идеи, как это реализовано в React-е?

Можете привести пример кода, позволяющего передавать в JS функцию HTML код в качестве аргумента, при этом не вызывая ошибки компиляции?

Answer 1

В данном случае используется не html, а jsx код, который, впрочем, очень похож на html. Подробнее можно прчесть в документации тут https://reactjs.org/docs/introducing-jsx.html или тут https://facebook.github.io/jsx/

READ ALSO
Не работает click в javascript, нужна помощь

Не работает click в javascript, нужна помощь

Всем привет, народ начинаю изучать js, вот есть скритец:

232
Браузер перестал видеть часть стилей? [требует правки]

Браузер перестал видеть часть стилей? [требует правки]

Пациент - по ссылкеВчера перестали показываться часть стилей

160
Группировка блоков разный высоты в один контейнер

Группировка блоков разный высоты в один контейнер

Как на bootstrap можно реализовать такой набор блоков? Запасной вариант для меня это js либа masonryКаким решением вы б воспользовались?

204