先看看例子:
ReactDOM.render(React.DOM.h1({ id: 'my-heading', className: 'title' },
React.DOM.span(
{id:my-heading}, React.DOM.em(null, 'Hello ')
),
' World'),
document.getElementById("app")
);
这个render()函数包含好几个函数调用,当我们用jsx简化这段代码:
ReactDOM.render(
<h1>
<span><em>Hello</em> world</span>
</h1>
document.getElementById('app')
)
这并不是有效的javascript语法,不能再浏览器中直接运行,需要吧这段代码转换城浏览器可以正常运行的纯javascript代码。
1. 转义JSX
转义需要重写代码,将其转换成老版本浏览器中可以使用的方法。转换前后功能不变。
和polifill(功能填充
)的概念不同,比如我们想要在Array上补充map()
方法:
//polifill
if(!Array.prototype.map){
Array.prototype.map = function(){
// 具体实现
};
}
//
polifill是纯javascript中的一种方案。但是当在这门语言引入新语法时,polifill就不足以解决问题。
在代码提供给浏览器使用之前,多加一个编译(转义
)新语法的步骤,以供浏览器支持代码的正常运行。
网友评论