开始上手React。前面有在看Stoyan Stefanov的《React快速上手开发》,感觉入门还挺方便的,就来实操下吧,结果一下子就掉坑里了。
去github下载了最新的16.8.6的react.js和react-dom.js。然后照着书本的例子打了下代码,没有效果,还报一个脚本错误。书中代码如下:
ReactDOM.render(
React.DOM.h1(null,"hello react"),
document.getElementById("app")
)
然后浏览器就报一个脚本错误:Cannot read property 'h1' of undefined。也就是说这里的h1本来是作为React.DOM中的HTML元素集合的,但是现在竟然说没有这个属性,测试下console.log(React.DOM),结果是输出:undefined。奇了怪了。
有问题就百度,结果百度出来的内容和书本上的差别还是比较大的,幸好作者有在github上提供书本源代码,下载下来一对照原来是版本有问题,在我下载的版本中貌似React.DOM不能用了,换低版本(16以下),就能正常运行。不过createElement方法还是能用的,所以以下代码还是可以正常使用的:
ReactDOM.render(
React.createElement("h1",null,"hello react"),
document.getElementById("app")
)
同时在百度找答案的时候发现了babel这个新脚本类型,目前还一直在用type="text/javascript",后续估计都要使用type="text/babel"了。先做好准备。
另外还有个问题:就是书本第二章一开始有个创建组件的方法:createClass,结果代码一跑又是一个脚本错误:React.createClass is not a function。这个又是版本问题了。新版本中则是利用如下的代码来创建组件的了:
class CustomTag extends React.Component {
render() {
return (
<h1>hello react</h1>
)
}
}
ReactDOM.render(
<CustomTag />,
document.getElementById("app")
);
React版本更新后区别还是挺大的,看来还是去换本书吧。