react-组件与模块-学习笔记

1模块

    1 理解:向外提供特定功能的js程序, 一般就是一个js文件
    2 为什么要拆成模块:随着业务逻辑增加,代码越来越多且复杂。
    3 作用:复用js, 简化js的编写, 提高js运行效率

2组件

    1 理解:用来实现局部功能效果的代码和资源的集合(html/css/js/image等等)
    2 为什么要用组件: 一个界面的功能更复杂
    3 作用:复用编码, 简化项目编码, 提高运行效率 

3模块化

当应用的js都以模块来编写的, 这个应用就是一个模块化的应用

4组件化

当应用是以多组件的方式实现, 这个应用就是一个组件化的应用

5函数式组件:

在这里插入图片描述

<script type="text/babel">
		//1.创建函数式组件
		function MyComponent(){
			console.log(this); //此处的this是undefined,因为babel编译后开启了严格模式
			return <h2>我是用函数定义的组件(适用于【简单组件】的定义)</h2>
		}
		//2.渲染组件到页面
		ReactDOM.render(<MyComponent/>,document.getElementById('test'))
		/* 
			执行了ReactDOM.render(<MyComponent/>.......之后,发生了什么?
					1.React解析组件标签,找到了MyComponent组件。
					2.发现组件是使用函数定义的,随后调用该函数,将返回的虚拟DOM转为真实DOM,随后呈现在页面中。
		*/
	</script>

babel翻译完后开启严格模式,禁止自定义函数指向window
在这里插入图片描述
中文换了编码形式

6类基础-复习

案例1

在这里插入图片描述

在这里插入图片描述

{}表示实例对象 前面person是类名,这里输出的是实例对象

案例2

要接住传过来的参数,类中要有构造函数
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

没有speak方法
//speak方法放在了哪里?——类的原型对象上,供实例使用
speak是实例使用
//通过Person实例调用speak时,speak中的this就是Person实例
在这里插入图片描述
在这里插入图片描述

call就会改变this的指向,所以输出都是undefined

案例3

3.1普通继承可以去掉构造器

直接student继承person的类
在这里插入图片描述

3.2继承新属性

子类中的新属性,不在父类加构造器,要在子类加构造器
在这里插入图片描述
子类有构造器你这里要调用super,要是不写构造器可以不写
在这里插入图片描述

在这里插入图片描述super要放在所有人之前

在这里插入图片描述

3.3调用父类方法

调用speak方法会找到上一级被继承的类
在这里插入图片描述

在这里插入图片描述方法发生改变
重写从父类继承过来的方法
在这里插入图片描述在这里插入图片描述

蓝色在student原型对象上,红色在person上

子类有自己的方法

在这里插入图片描述

3.4总结

1.类中的构造器不是必须要写的,要对实例进行一些初始化的操作,如添加指定属性时才写。
2.如果A类继承了B类,且A类中写了构造器,那么A类构造器中的super是必须要调用的。
3.类中所定义的方法,都放在了类的原型对象上,供实例去使用。

7类式组件:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述render放在哪里-MyComponent类的原型对象上,供实例使用
在这里插入图片描述
在这里插入图片描述
输出的是实例对象在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值