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 -- 2 -> 正文阅读

[JavaScript知识库]react -- 2

说说你对自定义hooks的理解

?通过自定义hooks,可以将组件逻辑提取到可重用的函数中。

可以理解为hooks就是用来放一些重复代码的函数。

通过闭包的方式给return出来,这是非常高级的方式

说说你对useMemo的理解

useMemo接收两个参数,分别是函数和一个数组(实际上是依赖项),函数里面return函数,数组内存放依赖

使用memo可以帮助我们优化性能,让react没必要执行不必要的函数

说说对useContext的理解

?context 它可以将全局的数据通过provider接口传递value给到局部的的组件,让包裹在provider中的局部组件可以获取到全局数据的读写接口

import React, { createContext, useContext, useState } from \"react\";
const initialState = { m: 100, n: 50 }; // 定义初始state
const X = createContext(); // 创建Context
let a = 0;
export default function App() {
  console.log(`render了${a}次`);//用来检查执行App函数多少次
  const [state, setState] = useState(initialState); // 创建state读写接口
  a += 1;
  return (
    <X.Provider value={{ state, setState }}> // 通过provider提供value给包围里内部组件,只有包围里的组件才有效
      <Father></Father>
    </X.Provider>
  );
}

const Father = (props) => {
  const { state, setState } = useContext(X);//拿到 名字为X的上下文的value,用两个变量来接收读写接口
  const addN = () => {
    setState((state) => {
      return { ...state, n: state.n + 1 };
    });
  };

为什么不能在循环,条件或嵌套函数中调用Hooks?

?react中,父子组件的声明周期执行顺序是怎么样的?

?说说react事件和原生事件的执行顺序?

react的所有事件都是挂载在document 中,

当真实dom触发后冒泡到documnet后才会对react事件进行处理

所以原生事件会先执行

然后执行react合成事件

最后执行真正在document上挂载的事件

react 和vue有什么区别?

?react 是 Facebook 创建的javaScript UI框架,React推广了虚拟DOM 并创造了jsx语法,让我们可以在js中书写html代码

vue是尤雨溪开发的,也是使用虚拟dom 但是vue使用的是模板系统而不是jsx语法,因其模板系统都是用的普通的html,所有应用的升级更方便,更容易

react 是函数思想 ,在react中是单向数据流,推崇结合immutable来实现数据不可以变

vue是响应式思想,也就是基于数据可变的,通过对每一个属性建立watcher来监听,当属性变化的时候,响应式的更新对应的虚拟dom

react 的性能优化是需要手动去做的

vue的性能优化是自动的

Redux 和Vuex 有什么区别,它们有什么共同的思想?

相同点:

  • state共享数据
  • 流程一致:定义全局state,触发,修改state
  • 原理相似,通过全局注入store

不同点:

redux??

1. 组件点击事件或者其他方法 发送 action

2. store 接收到 action 会把 oldState ?和 ?action 发送给 reducers

3. reduers 匹配对应的 action 就会修改 对应的 state

4. state 改变 store 触发监听函数 去修改 component视图

5. 单向数据流管理组件的状态

vuex

定义了state,getter,mutation,action 四个对象

  1. store ?全局的唯一的仓库
  2. state ?对象 存放数据的地方 ?修改state Vue 响应式系统执行 ?更新数据 刷新组件视图
  3. action 动作 发送信号
  4. ?mutation 修改数据的地方

用户通过点击或者发送一个 action

action 接收这个信号 ?去通知 mutations

mutations 会立即去修改mutate管理这个数据状态state

state状态发生改变,vue会触发响应式视图系统 ?直接更新数据 ?刷新视图

全局的数据状态更新过程就结束了

你不能直接改变 store 中的状态。改变 store 中的状态的唯一途径就是显式地提交 (commit) mutation。这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用

  • # vuex 四个辅助函数 ? (mapState 辅助函数帮助我们生成计算属性,让你少按几次键)
  • # mapState
  • # mapMutations
  • # mapActions
  • # mapGetters

mobx 和 redux有什么区别??

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:34:49  更:2022-08-06 10:37:38 
 
开发: 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年11日历 -2024/11/23 13:42:34-

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