文章目录
1. JSX
- jsx 可以防止注入攻击
- React DOM 在渲染所有输入内容的时候,默认会进行转译,可以有效的防止
XSS (cross-site-scriping)
跨站脚本攻击
- React DOM 在渲染所有输入内容的时候,默认会进行转译,可以有效的防止
- Babel会把JSX转译成一个名为React.createElement()函数调用
2. 元素渲染
在项目的index.html 文件中,会有一个div
<div id="root"></div>
- 仅用React 构建的应用通常只有单一的根DOM节点
3. 组件 & props
-
当 React 元素为用户自定义组件时,它会将jSX 所接受的属性以及子组件Children转换为单个对象 props 传递给组件。
-
自定义组件必须以大写字母开头
- 以小写字母开头的元素代表一个 HTML 内置组件, 会生成相应的字符串
'div'
或'span'
传递给React.createElement
作为参数. - 大写字母开头的元素,如
<Foo />
则会编译为React.createElement(Foo)
- 以小写字母开头的元素代表一个 HTML 内置组件, 会生成相应的字符串
-
组件绝不能修改自身的props
-
纯函数: 不会修改本函数的参数(入参), 所以多次调用相同的入参始终返回相同的结果
4. state & 生命周期
React.Component
React的Class组件需要继承 React.Component。
强烈建议不要创建自己的组件基类,代码重用的主要方式是组合,不是继承
组件的生命周期
把现有的所有生命周期函数全部列出来,看看执行结果先
constructor(props) {
super(props)
this.state = {
count: 0,
name: '大笨钟'
};
console.log('constructor');
}
static getDerivedStateFromProps<