学习React之前需要掌握的JavaScript知识
判断this的指向
class(类)
ES6语法规范
npm包管理器
原型、原型链
数组常用方法
模块化
使用方式
- script标签引入
react.js
React的核心库react-dom.js
提供与DOM相关的功能browser.js
babel针对浏览器环境的版本,可将jsx、ES6+等语法编译成浏览器支持的代码
在浏览器中使用 Babel 来编译 JSX 为实时编译, 效率是非常低的,一般只用于演示
-
使用
- 创建虚拟节点:
React.createElement(type,props,children)
- type: 节点名称
- props: 节点属性
- children: 节点内容
- 渲染节点:
ReactDOM.render(VNode,target)
是 ReactDOM 的最基本方法,用于将内容渲染到指定节点中
- VNode:虚拟节点或 React 组件
- target:挂载点,必须为元素节点
<script> ReactDOM.render( React.createElement("div", { className: "container" }, "创建虚拟节点"), document.getElementById("app") ); </script>
- 创建虚拟节点:
JSX语法
一种特殊的 js 语法,是 ECMAScript 的扩展,可以让我们在 js 代码中使用 html 标签来编写结构,避免繁琐的React.createElement()
操作
PS:JSX 是
React.createElement()
的语法糖,虽然看起来像 HTML,但严格意义上来说它还是 JS,这种特殊的 JS 浏览器无法识别,所以需要 babel 进行编辑,编辑后它最终会转化成React.createElement()
去创建 js 对象。
注意:使用jsx需要遵循以下规则
- 因为 Javascript 代码与 JSX 代码并不兼容,凡是使用 JSX 的script 标签都需要加上
type="text/babel"
- 在 jsx 代码中,同为 js 关键字的 html 属性不能直接使用
- class -> className,
- for -> htmlFor
- 属性使用驼峰
- tabindex -> tabIndex
- autofocus -> autoFocus
- onkeydown -> onKeyDown
- 必须结束标签
<input type="text" />
<img src="logo.png" />
- style 属性的值接收一个对象,css 的属性必须为驼峰写法
<div style={{backgroundColor:"#f60"}}
- 花括号
{}
内为 js 表达式,不允许出现var
,let
,const
等关键字 - 使用 js 语法注释(如{
/*注释内容*/
},//注释内容
)