React学习笔记

78 阅读2分钟

9.21 day1

1、在引入库的时候,先引入核心库(react.development),再是其他库。

2、script脚本是babel类型的;创建虚拟DOM的时候,不要用引号利用ReactDOM.render(VDOM,document.getElementById('test'))渲染虚拟DOM到页面。

3、虚拟DOM标签中引入js表达式时用{}。

4、虚拟DOM在标签中样式类名指定不要用class,要改为className。

5、虚拟DOM标签中内联样式style的内容要写成{{}}的形式,例如style={{color:'white',fontSize:'29px'}}。其中第一个大括号表示引入js表达式,第二个大括号表示对象类型。

6、jsx虚拟DOM的根标签只能有一个。且每个标签都需要规范闭合(自闭合/闭合标签)。

7、使用babel编译后会开启严格模式。严格模式下禁止函数内的this指向window,所以在函数内部输出this显示undefined。

8、类中的构造器不是必须写的,要对实例进行初始化操纵,同时具有自己特定的属性时才写。

9、如果B类继承了A类,且B类中写了构造器,那么B类的构造器中必须调用super,且super是写在第一行。

10、类中所有的方法都是放在类的原型对象上,供实例去使用。

11、当使用类方法创建组件的时候,一定要继承React中的React.Component。同时要调用render,并且render要有返回值。

12、虚拟DOM中React中对事件处理名字进行重新编写,两个单词的第二个单词首字母大写,例如onclick => onClick。同时属性值不是字符串而是直接的函数名(记得标签中国使用js表达式时加{},同时函数不要加括号,加了括号表示写入返回值,而不是函数体)。但是后续会发现有新的问题,关于调用的函数的this指向。

13、render的指向为什么是组件实例? 答:因为在render中return中写了组件标签,react自动调用了new

14、在标签中,React的展开运算符可以展开对象(原生是不行的,展开对象得在外面包一层{})