JSX语法及学习

jsx.jpg


文章目录



文章目录


JSX 是 Javascript 代码里直接写XML的语法


JSX (Javascript XML syntax transform) 是使用XML语法编写Javascript的一套解析工具;
X代表XML;也可以理解为扩展(eXtension),因为实现JSX功能本身就是使用Javascript;
React建议使用JSX(但非必要)


实质上这只是一个语法糖,每一个XML标签都会被JSX转换工具转换成纯Javascript代码

React 官方推荐使用JSX, 当然你想直接使用纯Javascript代码写也是可以的,只是使用JSX,组件的结构和组件之间的关系看上去更加清晰


使用 JSX


React.render(
    <div>
        <div>
            <div>content</div>
        </div>
    </div>,
    document.getElementById('example')
);

不使用JSX


React.render(
    React.createElement('div', null,
        React.createElement('div', null,
            React.createElement('div', null, 'content')
        )
    ),
    document.getElementById('example')
);

对比

// 使用JSX

var Nav;
var app = <Nav color="blue" />

// 使用原生Javascript

var Nav;
var app = createElement(Nav, { color: "blue" });

我们写一个XML标签,实质上就是在调用React.createElement这个方法,并返回一个ReactElement对象

ReactElement createElement(
  string/ReactClass type,
  [object props],
  [children ...]
)

这个方法的第一个参数可以是一个字符串,表示是一个HTML标准内的元素,或者是一个ReactClass类型的对象,表示我们之前封装好的自定义组件。第二个参数是一个对象,或者说是字典也可以,它保存了这个元素的所有固有属性(即传入后基本不会改变的值)。从第三个参数开始,之后的参数都被认作是元素的子元素。


为什么使用 JSX

方便DOM节点可视化 - 以往需要createElement \ append才能把一个DOM节点插入到文档中显示,使用JSX的代码就是 React,跟普通的HTML代码一样(规范的HTML文档本身就是XML文档)

方便创建变更DOM节点属性和内容;

方便MXML和XAML的开发人员 - 因为他们已经使用过类似的语法;

出自:JSX语法及学习

回到顶部