在React.js中使用JSX

JSX就像具有JavaScript强大功能的模板语言一样。它有助于创建反应元素。它是JavaScript的扩展,包括UI元素。

示例

let message = <h1>Hello World </h1>;

h1标签是已知的html标签,但是使用jsx,我们创建了一个变量,其中包含带有hello world消息的h1标签。

jsx的用处

虽然使用jsx创建react元素不是强制性的。但是它明显吸引人,并且有助于轻松理解代码。React包含将UI逻辑和呈现逻辑保持在一起的概念。

我们可以构建不同的松耦合组件来分离关注点

Expression embedding :

let name = ‘Steve’;

const welcomeMessage = <h1>Welcome, {name} </h1>;

ReactDOM.render(

   welcomeMessage,

   document.getElementById(‘app’)

);

在上面的示例中,name是一个值为'Steve'的变量,该变量嵌在const welcomeMessage中的花括号中。

任何有效的JavaScript表达式(包括函数)都可以在jsx中使用花括号。示例:{5 * 5}将得出25

在jsx表达式中使用函数的示例-

function getFullName(customer) {

   return customer.firstName + ' ' + customer.lastName;

}

const customer = {

   firstName: 'Amit',

   lastName: 'Sharma'

};

const welcomeCustomer = (

   <h1>

      Welcome, { getFullName(customer) } !

   </h1>

);

ReactDOM.render(

   welcomeCustomer,

   document.getElementById('app')

);

我们可以通过将多个jsx代码包装在方括号()中来添加代码。它还避免了自动分号插入的问题。编译时,jsx代码将转换为常规JavaScript。

JSX元素可以作为参数传递或从函数调用返回。它也可以在条件语句中使用。

jsx元素的属性

jsx元素上使用的属性名称遵循驼峰表示法。示例:用于添加css类的类名称属性被命名为className(由于class是JavaScript中的保留关键字,它使用className)

tabIndex-在常规html元素中,它将是tabindex,所有字符都小写,但是在jsx中,它将是tabIndex

我们可以使用字符串文字(例如className =“ App”)或带花括号的jsx表达式className = {Test}来给属性赋值

jsx元素可以包含子元素,如果为空,则可以用/>关闭。

JSX还可以通过在呈现之前将转义jsx表达式中嵌入的值转义来帮助进行跨站点脚本攻击(XSS)。

Babel将jsx编译为常规JavaScript代码。示例-

const message = (

   <div className="welcome">

      Welcome !

   </div>

);

将转换为-

const message = React.createElement(

   'div',

   {className: 'welcome'},

   ' Welcome !'

);

以上是 在React.js中使用JSX 的全部内容, 来源链接: utcz.com/z/350290.html

回到顶部