React - 基础知识点

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/kelly0721/article/details/100525699
  1. 为什么要引入 React
import React from 'react'

function A() {
  return <h1>aaa</h1>
}

 ||
 
function A() {
 return React.createElement("h1", null, "aaa");
}

有时候你仅仅只是写一个函数不写组件,控制台都会报错,让你引入 React,为什么必须引入React呢?因为这些写法会被babel转化成与React相关的语法,再由JSX处理。

  1. 为什么要用 className 而不用 class
    简单点来说,因为class是保留词,在JSX语法中构建DOM元素如果用class会出问题

  2. 为什么属性要用小驼峰
    JSX 语法上更接近 JavaScript 而不是 HTM,所以采用了JS的语法习惯

  3. 为什么 constructor 里要调用 super 和传递 props
    简单来说,要调用才能 使用 this.state,要传递props,才能在构造函数中获得 this.props 的值
    为什么要调用 super:其实这不是 React 的限制,这是 JavaScript 的限制,在构造函数里如果要调用 this,那么提前就要调用 super,在 React 里,我们常常会在构造函数里初始化 state,this.state = xxx ,所以需要调用 super
    为什么要传递 props:如果不传递props,在 super() 调用之后与构造函数结束之前, this.props 是没法用的,但是可以在 render 和其他方法中访问 this.props,因为React 会在构造函数被调用之后,会把 props 赋值给刚刚创建的实例对象

  4. 为什么组件用大写开头
    这个是为了与原生dom节点做区分,小写开头是原生dom节点,大写开头是自定义组件,如果自定义组件用小写开头,在JSX语法中会报错,因为会找不到这个定义的原生dom节点

猜你喜欢

转载自blog.csdn.net/kelly0721/article/details/100525699