react.js|react学习----jsx语法

jsx语法 jsx优点:js逻辑和html标签,是一个 JavaScript 的语法扩展,具有JavaScript全部功能;
React 认为渲染逻辑本质上与其他 UI 逻辑内在耦合

  1. const element = Hello, world!; // js与html相结合;
  2. const name = 'Josh Perez'; // 定义name变量;
    const element = Hello, {name}; // 在标签中用大括号可以使用变量;
1.在大括号中可以使用js表达式
2.在必须使用ReactDOM.render(); 函数才可以渲染使用
3.为方便阅读可将jsx拆分为多行
function formatName(user) { return user.firstName + ' ' + user.lastName; }const element = (Hello, {formatName(user)}!); const user = { firstName: 'Harper', lastName: 'Perez' }; ReactDOM.render( element, document.getElementById('root') );

  1. 可以在if语句和for循环中使用jsx以及从函数中返回jsx
function getGreeting(user) { if (user) { return Hello, {formatName(user)}!; } return Hello, Stranger.; }

2.可以用引号将属性值指定为字符串字面量;
const element = ;
3.也可以使用大括号插入js表达式;
const element = react.js|react学习----jsx语法;
4.同一属性不能同时使用引号和大括号
5.所有的属性都是小驼峰命名法JSX 里的 class 变成了 className,而 tabindex 则变为 tabIndex。
6.如果标签中没有内容,可以用/>闭合标签
7.jsx标签里可以包含喝多子元素
8.可以安全的在jsx当中输入内容:React DOM 在渲染所有输入内容之前,默认会进行转义。它可以确保在你的应用中,永远不会注入那些并非自己明确编写的内容。
9.Babel 会把 JSX 转译成一个名为 React.createElement() 函数调用。
const element = (Hello, world!);

两种代码完全等效
const element = React.createElement( 'h1', {className: 'greeting'}, 'Hello, world!' );

【react.js|react学习----jsx语法】10.React.createElement() 会预先执行一些检查,以帮助你编写无错代码,但实际上它创建了一个这样的对象:
const element = { type: 'h1', props: { className: 'greeting', children: 'Hello, world!' } };

    推荐阅读