React использует JSX для шаблонов вместо обычного JavaScript. Нет необходимости использовать его, однако, ниже приведены некоторые плюсы, которые идут с ним.
-
Это быстрее, потому что он выполняет оптимизацию при компиляции кода в JavaScript.
-
Это также типобезопасно, и большинство ошибок могут быть обнаружены во время компиляции.
-
Это облегчает и ускоряет написание шаблонов, если вы знакомы с HTML.
Это быстрее, потому что он выполняет оптимизацию при компиляции кода в JavaScript.
Это также типобезопасно, и большинство ошибок могут быть обнаружены во время компиляции.
Это облегчает и ускоряет написание шаблонов, если вы знакомы с HTML.
Использование JSX
JSX в большинстве случаев выглядит как обычный HTML. Мы уже использовали его в главе «Настройка среды». Посмотрите на код из App.jsx, куда мы возвращаем div .
App.jsx
import React from 'react'; class App extends React.Component { render() { return ( <div> Hello World!!! </div> ); } } export default App;
Несмотря на то, что он похож на HTML, при работе с JSX необходимо учитывать несколько моментов.
Вложенные элементы
Если мы хотим вернуть больше элементов, нам нужно обернуть его одним контейнерным элементом. Обратите внимание, как мы используем div в качестве оболочки для элементов h1 , h2 и p .
App.jsx
import React from 'react'; class App extends React.Component { render() { return ( <div> <h1>Header</h1> <h2>Content</h2> <p>This is the content!!!</p> </div> ); } } export default App;
Атрибуты
Мы можем использовать наши собственные пользовательские атрибуты в дополнение к обычным свойствам и атрибутам HTML. Когда мы хотим добавить пользовательский атрибут, нам нужно использовать префикс данных . В следующем примере мы добавили data-myattribute в качестве атрибута элемента p .
import React from 'react'; class App extends React.Component { render() { return ( <div> <h1>Header</h1> <h2>Content</h2> <p data-myattribute = "somevalue">This is the content!!!</p> </div> ); } } export default App;
Выражения JavaScript
Выражения JavaScript могут использоваться внутри JSX. Нам просто нужно обернуть его фигурными скобками {} . Следующий пример отобразит 2 .
import React from 'react'; class App extends React.Component { render() { return ( <div> <h1>{1+1}</h1> </div> ); } } export default App;
Мы не можем использовать операторы if внутри JSX, вместо этого мы можем использовать условные (троичные) выражения. В следующем примере переменная i равна 1, поэтому браузер будет отображать значение true. Если мы изменим его на какое-то другое значение, оно будет отображать значение false .
import React from 'react'; class App extends React.Component { render() { var i = 1; return ( <div> <h1>{i == 1 ? 'True!' : 'False'}</h1> </div> ); } } export default App;
стайлинг
React рекомендует использовать встроенные стили. Когда мы хотим установить встроенные стили, нам нужно использовать синтаксис camelCase . React также автоматически добавит px после числового значения для определенных элементов. В следующем примере показано, как добавить встроенную строку myStyle к элементу h1 .
import React from 'react'; class App extends React.Component { render() { var myStyle = { fontSize: 100, color: '#FF0000' } return ( <div> <h1 style = {myStyle}>Header</h1> </div> ); } } export default App;
Комментарии
При написании комментариев нам нужно поставить фигурные скобки {}, когда мы хотим написать комментарий в дочернем разделе тега. Рекомендуется всегда использовать {} при написании комментариев, так как мы хотим быть последовательными при написании приложения.
import React from 'react'; class App extends React.Component { render() { return ( <div> <h1>Header</h1> {//End of the line Comment...} {/*Multi line comment...*/} </div> ); } } export default App;
Соглашение об именовании
HTML-теги всегда используют имена тегов в нижнем регистре , а компоненты React начинаются с Uppercase .
Примечание. Вы должны использовать className и htmlFor в качестве имен атрибутов XML вместо class и for .
Это объясняется на официальной странице React как —
Поскольку JSX — это JavaScript, такие идентификаторы, как class и for, не рекомендуется использовать в качестве имен атрибутов XML. Вместо этого компоненты React DOM ожидают имена свойств DOM, таких как className и htmlFor , соответственно.