IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> React 框架基础 —— 三大核心属性 -> 正文阅读

[JavaScript知识库]React 框架基础 —— 三大核心属性

(PPT来源:尚硅谷)

基础概念

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(第三点 eg:
进行虚拟DOM比较)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

入门

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

依赖包与Hello React

在这里插入图片描述
在这里插入图片描述
引入包:蓝色的核心库要在红色的核心库之前引入
在这里插入图片描述
直接利用 jsx 创建了虚拟 DOM
书写注意事项: babel…
在这里插入图片描述

虚拟DOM的两种创建方式

1. 使用 jsx 创建

代码:
在这里插入图片描述

2. 使用原始 js 创建

(不再需要 babel 将 jsx 转换为 js;type 还原为 javascript;用原始 js 创建虚拟DOM)
(过于复杂)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

jsx 语法规则

  • 快捷键
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  1. 静态页面代码:
    在这里插入图片描述
  2. 动态化代码:
    在这里插入图片描述

模块与组件

在这里插入图片描述

  • 拆模块:拆 js 文件,就是拆模块
    拆组件:拆分更加细致
    (eg:针对一个头部拆分为 html结构、css样式、js交互、img图片、video音视频…)
    在这里插入图片描述
  • 谷歌插件:开发者重的插件安装
    在这里插入图片描述

面向组件编程

1. 函数式组件

在这里插入图片描述

  • 代码(写一个方法作为组件)
    (首字母大写;组件需要写为标签形式)
    在这里插入图片描述
    ES5 中的严格模式:禁止自定义函数里的 this 指向 window,其 this 为 undefined
    (babel 翻译后开启了严格模式)
    (babel 是一个 JavaScript 编译器)
    在这里插入图片描述
    其中 react 的工作流程:
    在这里插入图片描述

2. 类式组件

  • 类的复习
    在这里插入图片描述
    方法中调用方法,需要用 this 指明调用的实例对象,即在内方法前加 this
    在这里插入图片描述
    类中的 this:
    构造器中的 this 一定是实例对象
    render 里的 this 也是组件实例对象
    函数式组件里的 this 为 undefined(严格模式:禁止自定义的 this 指向 window)
    在这里插入图片描述
  • 代码(写一个类作为组件):
    渲染中的类需要写成标签形式,由 react new出一个实例
    在这里插入图片描述
    在这里插入图片描述
  1. 简单组件 & 复杂组件
    简单组件:无state
    复杂组件:有state

类式组件的三大核心属性

在这里插入图片描述

1. state

在这里插入图片描述

  • 点击事件的写法:
    前两种为原生写法,第三种为 react 便捷写法
    在这里插入图片描述
  • 解决类中 this 的指向问题
    不解决时:onClick 点击事件直接调用的是这个函数,并不是从实例出发去调用的
    而类中写的方法,多半都是给事件作为回调使用的
    bind:生成新的函数、更改函数里 this 指向 undefined 的问题
    (这句 使得 实例对象自身多了该方法)
    在这里插入图片描述
  • 写入状态:state 写成一个对象形式 state { }
    修改状态:要用到内置 API setState
    在这里插入图片描述
    精简之后:
    (1)构造器去除(state{ } 直接写在类中)
    (2)更改 this 指向的方法简写:赋值语句 + 箭头函数
    (箭头函数没有自己的 this,其函数中有 this 时会找外侧函数的 this 使用)
    在这里插入图片描述

2. props

传递 props = 传递标签属性
在这里插入图片描述

  • 代码
    普通写法
    批量传值
    在这里插入图片描述
    重点:
    …三点运算符:
    (1)展开数组(原生语法不可,react + babel 可以展开一个对象且仅适用于标签属性的传递)
    (2)连接数组
    (3)不确定传参数量时可用
    (4)使用{…xxx}可以复制一个对象
    在这里插入图片描述
  • 对 props 进行限制
    类型限制、必要性限制、指定默认值
    在这里插入图片描述
  • 简写
    (props 是只读的,不允许直接更改 props)
    对标签属性的限制、修改全部放于类中,赋予 static 关键字
    在这里插入图片描述

2.1 类式组件的 构造器 & props

  • 在类中通过实例访问props
    在这里插入图片描述
    构造器的2个作用:
    在这里插入图片描述
    在这里插入图片描述
    综上,构造器能省略则省略

2.2 函数式组件 props

函数式组件没有自己的实例this,所以没有state(hooks中才可以)、refs属性
但是由于能够传入参数,所以可以使用 props
在这里插入图片描述
属性的限制、默认等,可以通过 . 写在外侧
在这里插入图片描述

props 总结

标签属性收集在props中,可以使用…批量传递
在这里插入图片描述
可以对标签属性进行限制:.propTypes、defaultProps
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(构造器一般都可以省略)

3. refs & 事件处理

3.1 字符串形式的 ref

在这里插入图片描述
ref的键值对:ref的值 – ref 所处节点
refs中收集到的ref:页面真实DOM的节点(虚拟DOM转换之后)
在这里插入图片描述

3.2 回调形式的refs

  • 字符串形式 refs 不太推荐,存在效率不高的问题:
    在这里插入图片描述
  • 目前,Reac官网推荐写法:回调形式
    (ref 内直接定义一个函数,不需要自己调用,最终自动实现)
    在这里插入图片描述
    ref 的参数:ref 当前所处的节点;
    把a节点放在了组件实例自身上,并取名为 input1
    (箭头函数没有自己的 this,于是向外找,render 的 this 是组件实例对象)
    (于是,将 ref 当前所处的节点挂在了实例自身上,并取名为 input1)
    (见名知意,将随意的 a 改名为 currentNode,最终由 c 表示)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    最终的实现:
    在这里插入图片描述
  • 回调次数的问题
    更新过程中:清空 + 传入节点
    在这里插入图片描述
    PS:JSX的注释
    在这里插入图片描述
    问题的解决:定义为 class 绑定函数(将函数放在了实例自身)
    在这里插入图片描述
    在这里插入图片描述

3.3 createRef

在这里插入图片描述
在这里插入图片描述
缺点:专人专用,需要很多 React.createRef()

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 10:37:59  更:2021-09-08 10:39:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/27 1:16:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码