react

✍️ Tangxt ⏳ 2021-02-28 🏷️ 理论篇

01-理论篇

★准备工作

1)import、export

如果你在x.js文件里边用了export default导出一个东西,那么你在y.js文件使用这个东西得这样来:

import dada from './y.js'

如果你不用defalut导出:

export const o = {}
export function fn() {}

那么在导入的时候,你得这样:

import {o,fn} from './x.js'

2)const

为什么要用const声明?

const title = <h1>React Learning</h1>

因为用 JSX 创建的元素一般是不变的! -> 内容可以变,但地址不变!

3)class

React 的旧版本创建类组件:

createClass方法 -> 该 API 目前已移除,如果你非得使用它,请单独引入create-react-class这个包

新版本中,创建class组件,需要extends React.Component -> 复用React.Component的属性和方法 -> 为什么我们的子类明明没有写props,但却能够用它? -> 那是因为我们继承了React.Component

React.Component

我不太确定:组件实例调用了父类的setState方法 -> setState方法里边用到了子类的state属性 -> 这似乎是高阶类啊!

➹:React.createClass 和 extends Component 的区别 - SegmentFault 思否

4)箭头函数

不用箭头函数:

<button onClick={this.handleClick.bind(this)}>Add</button>

以前的createClass姿势,不需要我们自己去绑定this,因为 React 已经默认帮我们把所有方法里边的this搞为组件实例了!而现在的class组件则需要我们自己去绑定! -> 如果不绑定那么handleClick里边的this值就是null/undefined这样了! -> 我以为是那个触发事件的元素……

用了箭头函数:

<button onClick={() => this.handleClick()}>Add</button>

少写了一些代码……

5)npm vs yarn

npm:

npm 是一个基于 nodejs 的 JavaScript 包管理工具,全称叫做 node package manager,所谓的包呢,其实就是可复用的代码,每个人都可以把自己编写的代码库发布到 npm 的源,英文叫做 registry,上面呢进行管理,你也可以下载别人开发好的包,在你自己的应用当中使用

yarn:

6)快速搭建 React 开发环境

★React

1)JSX

1、简介

2、实现原理

3、基本语法

💡:JSX 元素

// 用 JSX 创建的元素对象一般来说是不变的
const title = <h1>React Learning</h1>;

// 将 JSX 元素渲染成 DOM 的方法
ReactDOM.render(title,document.getElementById('root'))

💡:JSX 属性

支持的属性:DOM 元素 – React

💡:JSX 嵌套

💡:JSX 表达式

2)组件类型