react-讲义-day01

101 阅读3分钟

react-类类型组件-day01

今日任务

  • 复习class语法
  • react介绍
  • 搭建react的两种方式
    • webpack
    • vite
  • 项目目录介绍
  • 创建我的第一个组件
  • 组件的页面(jsx)
  • 组件的数据
  • 组件的方法
    • 传参
  • 组件之间通信

class语法复习

react介绍

react是一个js库。用途:只构建用户视图(路由跳转、状态管理、发起请求都不是他做的事情),所以react算一个库,不算一个框架,他需要配套着其他库一起使用,才能开发一个前端应用。 13年facebook公司为了编写公司的ins网站,市面上没有什么好用的mvc库,然后内部开发开发react项目。然后开源

  • 比较适合开发大型应用
    • 更好的代码抽取
    • 更好的代码复用
    • 类类型组件、函数组件、hook
  • 更加贴近原生,崇尚自由
  • 学习的注意事项
    • react书写过程中你会遇到很多原生js的知识

      • this的绑定呀
      • 闭包
      • bind
      • 函数的使用(函数作为参数传递。。。。)
    • react编写久了,你的基础只会越来越扎实。

react环境搭建

两张方式搭建环境

使用webpack的方式

使用vite的方式

vscode配置

快速生成代码片段

目录结构梳理

react类类型组件的构成

数据

在react组件中,响应式数据都必须定义在state属性上,所谓响应式数据就是能够通过setState方法去改变,数据改变之后页面更新。

render函数

在类类型组件中,有一个render方法。里面返回的就是组件的页面。

视图结构

与vue相似,react为了把逻辑与页面强关联在一起,创造了一种新的模板语法,也就是jsx(tsx)。对js语法进行了扩展,相当于一种新的模板语法。

样式

在react中使用样式比较偏向原生,直接使用import导入样式

类的方法与结构

你可以理解为是组件上的一些方法

jsx语法介绍

react认为ui渲染与逻辑本来就应该耦合在一起。比如ui上绑定事件、状态发生变化的时候通知yu更新。所以react要把ui(html)与逻辑(js)写在一个文件中,原有的js中并没有ui类型,并不支持像定义变量那样定义一个div,或者函数返回一个div,类似一下写法:

const div = <div></div>

function cDiv() {
    return <div>cDiv</div>
}

所以除了一个新的语法叫做jsx(tsx),你可以在js(ts)中的任何位置定义一个div

jsx中的占位符

请注意末班语法出来了的顺序:{} > {{}} > ${}

  • 占位符出现的位置
    • 节点上
    • 节点中
  • 占位符里面能跟什么?
    • 数字+字符串(react帮你转换为文本节点)
    • jsx语法(react帮你解析成节点)
    • 对象报错
    • 数组,数组里面只能放(数字、字符串)
      • react会去一个一个的循环,转换为节点,如果遇到对象报错
  • 与原生html的区别
不同点htmljsx
设置类名classclassName
绑定事件onclickonClick

react中的数据

数据的定义

数据的修改

react中事件绑定与传参

this问题规避

  • 使用箭头函数
  • 使用bind

三种传参方式

  • 闭包
  • 自定义属性
  • bind

react组件的创建与使用

创建组件

组件通信

  • 子传父
  • 父传子