模块化与组件化的理解
- 模块化:
1)理解:向外提供特定功能的js程序,一半就是一个js文件
2)为什么要拆成模块:随着业务逻辑增加,代码越来越多且复杂
3)作用:复用js,简化js的编写,提高js运行效率
4)类似平时代码封装的 utils.js, hook.js, static.js
5)当应用的js都以模块来编写,这个应用就是一个模块化的应用 - 组件化
1)理解:用来实现局部功能效果的代码和资源的集合
2)为什么要使用组件化:一个界面的功能更复杂
3)作用:复用编码,简化项目编码,提高运行效率
5)当应用是以多组件的方式实现,这个应用就是一个模块化的应用
创建函数式组件
1)函数内的this指向undefined
2)必须有返回值
3)函数名大写
创建类式组件
1)类中的构造器不是必须写的,要对实例进行一些初始化的操作,如添加指定属性时才写
2)如果A类继承了B类,且A类中写了构造器,那么A类构造器中的super()是必须要调用的
3)类中所定义的方法,都是放在了类的原型对象上,供实例使用
组件实例的三大核心属性
state
理解
1)state是组件对象最重要的属性,值是对象(key-value)
2)组件被称为"状态机",通过更新组件的state来更新对应的页面显示(重新渲染组件)
注意
1)组件render方法中的this为组件实例对象
2)组件自定义方法中的this为undefined,如何解决
a.强制绑定this,通过bind()
b.定义方法时用箭头函数 ——————推荐
c.方法调时用箭头函数
3)状态不可直接更改,借助内助API通过setState()更新