React的学习(1)

开始学习react,多会一个,机会越多,加油!

流程:
创建虚拟DOM对象
渲染虚拟DOM对象ReactDOM.render
第一次接触,这是两种写法
在这里插入图片描述
在这里插入图片描述

组件

在这里插入图片描述
这个过程工厂函数组件和class继承方法一个被调用了,一个new生成了实例,实例对象的原型中有render方法
在这里插入图片描述
总结ReactDOM.render()渲染组件标签的基本流程
1.React内部去创建组件实例对象
2.得到包含的虚拟DOM并解析成真正的DOM
3.插入到指定的页面元素内部

component_props

1.每个组件对象都会有props属性
2.组件标签的所有属性都保存在props中
3.内部读取某个属性值:this.props.name
4.通过标签属性从外向内传递数据(只读)
5.因为组件你要给别人用,所以可以对props中的属性值进行类型限制和必要性限制

//1. 定义组件类
  class Person extends React.Component {
    
    
    render() {
    
    
      console.log(this)
      return (
        <ul>
          <li>姓名: {
    
    this.props.name}</li>
          <li>性别: {
    
    this.props.sex}</li>
          <li>年龄: {
    
    this.props.age}</li>
        </ul>
      )
    }
  }
  // 对标签属性进行限制
  Person.propTypes = {
    
    
    name: PropTypes.string.isRequired,//必须要传
    sex: PropTypes.string,
    age: PropTypes.number
  }
  // 指定属性的默认值
  Person.defaultProps = {
    
    
    sex: '男',
    age: 18
  }

  //2. 渲染组件标签
  const person = {
    
    
    name: 'Tom',
    sex: '女',
    age: 18
  }
  ReactDOM.render(<Person {
    
    ...person}/>, document.getElementById('example1'))
  const person2 = {
    
    
    myName: 'JACK',
    age: 17
  }
  ReactDOM.render(<Person name={
    
    person2.myName} age={
    
    person2.age}/>,
    document.getElementById('example2'))

因为要求外面必须嵌套一层,不能直接写,所以用flex布局解决办法就是套层fragment,当然需要提前引入
在这里插入图片描述

嵌套组件

在这里插入图片描述

refs属性

用来操作真实DOM
内置方法中的this指向的都是实例对象
自定义方法中的this指向的都是null
在这里插入图片描述
这里面在定义所有的事件方法必须由实例对象来调用,也就是必须this.什么

state属性

称为”状态机”,通过更新组建的状态值来更新对应的页面显示(重新渲染)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_46013619/article/details/104855720
今日推荐