4.react、react-dom为什么要单独引入,而不合在一起?
为了更好让react可以被更多平台使用,比如react既可以用来开发网页,也可以用来开发客户端,比如react-native
react-dom针对web和native所完成的事情不同:
- web端:react-dom会将jsx最终渲染成真实的DOM,显示在浏览器中
- native端:react-dom会将jsx最终渲染成原生的控件(比如Android中的Button,iOS中的UIButton)。
5.react为什么需要依赖babel?
浏览器只识别js语法,理论上我们也可以使用js编写react,但写法太过繁琐,所以我们一般使用jsx语法来写react,最后再通过babel转化成浏览器能识别的js语法。
课外:
babel是一个插件,可以把浏览器不支持的语法转化成支持的js
6.什么是jsx?
不太严谨地讲:只要你把HTML代码写在JS里,那就是JSX。
简单的jsx长这样:
const element = <h1>Hello, world!{msg}</h1>
为什么可以这么写 ==> 还记得babel的作用吗?
当然jsx也有一些细节要注意,有些关键字跟普通的HTML是不太一样的,不如class在jsx中要写成className等等,这个以后再讲解