1.函数式编程首字母必须大写(jsx规定)且标签必须闭合 2.经过Babel编译,进入严格模式=》禁止this指向window,所以指向undefined 3.mycompoennt继承自react。component render函数放在mycomponent的原型对象上,供实例使用 render的this指向mycomponent实例对象==mycomponent组实例对象 而函数式编程因为没有构造所以没有this什么的 有state的式复杂组件,state就是数据 5.react如何绑定事件,有需要注意的地方,onclick需要写onClick且调用户数不可以写“demo()”要写onClick={demo}如果写的是demo()的话,在解析的时候会当成赋值语句, 执行完console.log(‘被点击了’),然后赋值给onclick,这显然不行,会赋给onclick一个undefined的值(P14) 6.类中方法this的指向(p15) 类中自动开启严格模式(可以局部开启严格模式),里面的方法this指向window的话为undefined 在类中写οnclick=this.changeweather,console.log(this)指向的是undefined,因为这里不是实例调用,是把changeweather这个回调给了onclick 如果想拿到正确的this,需要使用bind,这时候调用的就是实例上的changeweather了,而不是原型上的changeweather p1.study() 实例调用 const x=p1.study x() 直接调用,所以是window 7.construcor只调用一次,用来创建实例,但是render函数会调用多次,每改变一次数据就调用一次 8.render和changeweather中的this为什么有区别呢,同在react.component上,因为render是实例调用,changeweather是直接调用οnclick=this.changeweather,所以它的this指向window 9.类中追加属性,可以直接在构造器外写,不用写let,直接a=1就可以了(这个a是直接放在每个实例对象上的),state可以放在公共的地方,同时方法也可以使用changeweather=function(){}这样的语句实现a=1的效果,放在每个实例上. 自定义方法写法:::::赋值语句+箭头函数(赋值语句写法将方法放在实例上,箭头函数解决this指向) 10.解构赋值在react中很好用,比如{name:“tom”,age:18}可以这么写const{name,age}=this.props,就可以直接获取到想要的值了 11.
|