mikumikugo

博客园 首页 新随笔 联系 订阅 管理

一、类知识回顾

class是es6新增的用于创建对象模板的关键字

创建一个类

//类名首字母要大写
class Person {
//当创建一个没有继承任何父类的类时,需要编写constructor函数来为类的实例对象添加属性
   constructor(name,age){
          this.name=name
          this.age=age
}   
//定义类的方法时,不能使用function关键字,而是直接定义
eat(){
   console.log(‘我要吃饭饭!!!’)
}
 
}

//创建一个Person实例
const p1 = new Person(‘李华’,19)
console.log(p1.name,p1.age)
p1.eat()

 继承一个类

class Student extends Person(){
      constructor(name,age,grade){
 //当定义一个继承自其它类的类时,如果有自己独立的属性(父类没有),需要写constructor函数,传入父类所定义的参数,并且需要调用super函数
            super(name,age)
//所有与this有关的操作都要写到super函数之后
            this.grade=grade
      }
}

const s1 = new Student('小芳',18,‘高三’)
console.log(s1.name,s1.age,s1.grade)
s1.eat()

二、类式组件

同样的,使用类式组件需要引入React、React-DOM库以及babel

创建的类式组件继承React里面定义的Component类,调用render方法,将要显示的内容用return返回,最后使用ReactDOM.render渲染组件到容器

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>类式组件</title>
</head>

<body>
    <div class="test"></div>
    <script type="text/javascript" src="../js/react.development.js"></script>
    <script type="text/javascript" src="../js/react-dom.development.js"></script>
    <script type="text/javascript" src="../js/babel.min.js"></script>
    <script type="text/babel">
        //创建类式组件
        //必须继承React.Component这个类
        class MyComponent extends React.Component {
            //必须写render函数
            //render是放在类的实例对象上的,供实例使用
            render() {
                //render函数里面必须有返回值
                return (<h1> 类创建的复杂组件</h1 >)
            }
        }
        //这里的render和类组件里面的render函数没有任何关系,只是重名而已
        ReactDOM.render(<MyComponent />, document.querySelector('.test'))

        //react解析组件标签,找到了组件
        //发现该组件是使用类定义的,于是创建了一个该对象的实例,并通过该实例调用原型链上的render方法
        //将render返回的虚拟DOM转为真实DOM呈现在页面中 

    </script>

</body>

</html>

 

posted on 2022-02-09 19:22  mikumikugo  阅读(224)  评论(0编辑  收藏  举报