JSX 语法

JSX 语法

它允许我们在JS里直接去写标签,他的特点如下

  • 每个标签必须关闭;
  • Adjacent JSX elements must be wrapped in an enclosing tag(JSX元素必需被包裹在一个完全封闭的标签内);
  • 注释的写法: {/我是注释/}
  • 我们可以在JSX语法内嵌入变量{obj},但是不能嵌入js语句,比如 console.log();会报错 ;不支持if语句,但是支持三目运算符
  • class 写为 className , tabindex 写为 tabIndex , for 写为 htmlFor
  • JSX语法会被编译,通过React.createElement()方法

例:

let name = 'ljm';
let age = 4;
let male = 1;
let obj = {name:'ljm'};
function add() {
  return 6+8;
}
let a =
  <div>
    <h1>hello react</h1><br/>
    {/*我是注释*/}
    <h1>{name+'^_^'}</h1>
    <h1>年龄:{age*5}</h1>
    <h1 className={male ? 'aaa' : 'bbb'}>性别:{male ? '男' : '女'}</h1>
    {/*<style>
    .aaa{color: #ccc;}
    .bbb{color: pink;}
    </style>*/}
    {/*在index.html里添加以上style的样式,当性别为男时这一行会显示灰色,性别为女时会显示粉色*/}
    <h1>{obj.name}</h1>
    <h1>{add()}</h1>
  </div>;
//以上注释的形式是JSX语法
ReactDOM.render(
  a ,document.getElementById('app')
)