Class的概念

  一、简介

        javaScript是面向对象的编程语言,可以说所以的能够被描述的事、物或抽象的东西,都是可以是对象。而我们记录的对象,会有具有同样的属性和行为。

      为了节省重写相同的代码。就产生了class模板。

      举例:

             这里有一把枪, 枪的种类很多,有步枪,机关枪,阻击枪....。但是无论怎么说,这些都是枪的概念,如果把这种抽象的概念剥离出来,就是我们经常说的“类”。那么枪有什么特点呢? 威力大小,型号,长度,子弹型号,能承载子弹的数量,枪口半径......ok! 这些一切的一切都是为了描素枪,把这些抽象出来,就组成了“枪类”的属性。枪又能干什么呢?  瞄准,开火,....这些描素都是枪的功能-----把这些抽象出来,即组成了一个类的方法。

   二、Class学习

       二 . 1 Class和function的区别;

          二.1.1  class的特点

            使用class关键字创建的组件,有自己的私有数据(this.state)和生命周期函数,有状态;

            class中有默认执行函数  " constructor (){}  " ,并且还有一个静态属性只属于class的"static"静态属性和静态方法;

            class中的super关键字,是用来继承父类的,属性和方法,如果在子类和父类都有constructor的时候,super则是先执行父类的constructor,再执行子类的constructor。

            “this”指向问题,class中的this指向实例时的对象。

            “static"指向class,它是属于class的数据。

          二.1.2 function的特点

            使用function创建的组件,只有props,没有自己的私有数据和生命周期函数,无状态;

          

        小结:组件有没有状态是根据有没有 ‘state’属性,所以class创建的组件为有状态【有状态】,而用构造函数创建的组件没有状态【无状态】。如果一个组件需要有自己的私有数据,则推荐使用 :class创建的有状态组件;如果一个组件不需要私有的数据,则推荐使用,无状态组件;React 官方说:无状态组件,由于没有自己的state和生命周期函数,所以运行效率会比又状态组件稍微高一些;

       二 . 2 组件中的props和state、data之间的区别。

          二.2.1 props是什么?

             props是从外部传进来的数据,并且props是只读数据,只可以读取不能重新赋值。

          二.2.2 state和data是什么?

             state和data都属于组件的私有属性,(通过ajax获取回来的数据一般都为私有数据),并且数据是可以重新赋值。

   三、class的使用

// 创建一个类存放特有的属性和方法,用来实例对象。
class Student{
// 静态属性只属于Student的属性
static p = "静态属性";
// 静态方法只属于Student的方法
static m(){
console.log("静态方法")
} // 构造方法
constructor(props){
//实例属性
this.name=props.name;
this.age=props.age;
this.sex=props.sex;
} // 实例方法
students(){
console.log(this.name)
console.log(this.age)
console.log(this.sex)
}
xue(){
console.log(this.name,"学习使我进步!")
}
wan(){
console.log(this.name,"你真调皮~")
}
xiao(){
console.log(this.name,"哈哈哈~")
} } Student.m()
console.log(Student.p)
// 实例化对象
var obj={name:"小红",age:20,sex:"女"}
var S1 = new Student({...obj});
// 调用方法
S1.students()
S1.xue()
S1.xiao()

//实例化对象
var obj={name:"小明",age:22,sex:"男"}
var S2 = new Student({...obj});
S2.students()
S2.wan()

  

  

  

React中Class的概念的更多相关文章

  1. react中的核心概念

    DOM:浏览器中提供的概念: 虚拟DOM:框架中的概念:需要开发框架的程序员手动用JS对象来模拟DOM元素和嵌套关系: 本质:用JS对象,模拟DOM树: 目的:实现页面的按需更新: 要求:点击列头,实 ...

  2. react中虚拟DOM的基本概念

    react中的核心概念 1.DOM的本质是什么: 浏览器中的概念,用js对象来表示页面上的元素,并提供操作DOM对象的API 2.什么事react中的虚拟DOM:是框架中的概念,是程序员用js对象来模 ...

  3. React 深入系列1:React 中的元素、组件、实例和节点

    文:徐超,<React进阶之路>作者 授权发布,转载请注明作者及出处 React 深入系列,深入讲解了React中的重点概念.特性和模式等,旨在帮助大家加深对React的理解,以及在项目中 ...

  4. Immutable 详解及 React 中实践

    本文转自:https://github.com/camsong/blog/issues/3 Shared mutable state is the root of all evil(共享的可变状态是万 ...

  5. React 中阻止事件冒泡的问题

    在正式开始前,先来看看 JS 中事件的触发与事件处理器的执行. JS 中事件的监听与处理 事件捕获与冒泡 DOM 事件会先后经历 捕获 与 冒泡 两个阶段.捕获即事件沿着 DOM 树由上往下传递,到达 ...

  6. react实战项目开发(2) react几个重要概念以及JSX语法

    前言 前面我们已经学习了利用官方脚手架搭建一套可以应用在生产环境下的React开发环境.那么今天这篇文章主要先了解几个react重要的概念,以及讲解本文的重要知识JSX语法 React重要概念 [思想 ...

  7. [Web 前端] mobx教程(三)-在React中使用Mobx

    copy from : https://blog.csdn.net/smk108/article/details/85053903 Mobx提供了一个mobx-react包帮助开发者方便地在React ...

  8. 深入理解react中的虚拟DOM、diff算法

    文章结构: React中的虚拟DOM是什么? 虚拟DOM的简单实现(diff算法) 虚拟DOM的内部工作原理 React中的虚拟DOM与Vue中的虚拟DOM比较 React中的虚拟DOM是什么?   ...

  9. react系列(五)在React中使用Redux

    上一篇展示了Redux的基本使用,可以看到Redux非常简单易用,不限于React,也可以在Angular.Vue等框架中使用,只要需要Redux的设计思想的地方,就可以使用它. 这篇主要讲解在Rea ...

随机推荐

  1. 【串线篇】概述SpringMvc和spring整合

    SpringMVC和Spring整合的目的:分工明确: SpringMVC的配置文件就来配置和网站转发逻辑以及网站功能有关的(视图解析器,文件上传解析器,支持ajax,xxx):springmvc.x ...

  2. 关于Linux_系统资源监控_dmesg_free_uptime_uname

    (系统资源查看命令-dmesg[查看系统内核资源信息])->判断服务器的硬件状态 Comment:dmesg | grep CPU,指定查看cpu资源信息 (系统资源查看命令-free[查看内存 ...

  3. UNP学习第六章select

    一.I/O复用典型的网络应用场合 当客户处理多个描述字时,必须使用I/O复用,这在前一段中已做了描述. 一个客户同时处理多个套接口时可能的,但很少出现. 如果一个TCP服务器既要处理监听套接口,又要处 ...

  4. vue2 的 过渡(动画)效果

    1.在过渡 效果的使用中 ,key属性需要注意 : 有相同父元素的子元素必须有独特的 key.重复的 key 会造成渲染错误.       参考官方说明:  https://cn.vuejs.org/ ...

  5. 【Shiro】四、Apache Shiro授权

    1.授权实现方式 1.1.什么是授权 授权包含4个元素(一个比较流行通用的权限模型) Resources:资源 各种需要访问控制的资源 Permissions:权限 安全策略控制原子元素 基于资源和动 ...

  6. TDengine陶建辉 自带聚光灯&BGM的半百少年

    TDengine,这款定位为“专为物联网而生的大数据平台”,引爆了2019年夏天的软件圈. 2019年7月12日,涛思数据宣布将TDengine的内核(存储和计算引擎)以及社区版100%开源. 201 ...

  7. mybatis plus的条件构造器

    我们在使用条件构造器的时候要使用QueryWrapper或者UpdateWrapper来充当条件语句来进行构造 QueryWrapper(LambdaQueryWrapper) 和 UpdateWra ...

  8. Windows IO System

    Windows IO System是由一些executive components组成,这些component可以认为是ntoskrnl.exe中相对独立的一些module. 整个IO System是 ...

  9. Codeforces 388C Fox and Card Game (贪心博弈)

    Codeforces Round #228 (Div. 1) 题目链接:C. Fox and Card Game Fox Ciel is playing a card game with her fr ...

  10. \r\n\t 转义字符

    https://www.cnblogs.com/lsqbk/p/10259044.html https://www.cnblogs.com/f158w058/p/6548073.html 文件中的换行 ...