前端(十)——深入剖析 Vuex:Vue.js 应用的状态管理神器

news2024/11/22 21:53:16

在这里插入图片描述

🙂博主:小猫娃来啦
🙂文章核心:深入研究vuex中的各种细节

文章目录

  • 什么是vuex
    • vuex的工作原理
    • 使用 Vuex 可以带来以下好处:
    • 集中式
  • vuex中的状态,它存储在哪里?如何改变?
  • Vuex 和 Redux 的区别
  • 为什么vuex中的mutations不支持异步
  • Vuex 和 localStorage 的区别
  • v-model绑定vuex的state
  • vue.js中ajax请求代码应该写在组件的methods中还是vuex的actions中?
  • 为什么vuex的Mutations是同步,而Actions是异步

什么是vuex

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式和库。它可以帮助我们更好地管理应用中的状态(数据),并使得状态在组件之间共享和可追踪。Vuex 使用集中式存储来管理所有组件的状态,并提供了一种规范的方式来更新和获取状态。

在 Vue.js 应用中,当应用规模变大或组件之间需要共享数据时,使用 Vuex 可以极大地简化状态管理。它包含以下核心概念:

状态(state):

  • 状态是应用数据的存储中心。
  • 在 Vuex 的 store 对象中声明和定义状态。
  • 组件可以通过访问 this.$store.state 来获取状态。
  • 可以通过 mutations 来修改状态。

Mutations(变化):

  • Mutations 是用于修改状态的方法。
  • Mutations 接收一个参数,即当前的状态(state)。
  • Mutations 负责更改状态,并且是同步的操作。
  • 在 Vuex 的 store 对象中定义 mutations。
  • 组件可以通过 this.$store.commit(‘mutationName’) 来提交 mutation,从而修改状态。

Actions(动作):

  • Actions 类似于 mutations,但是可以处理异步操作。
  • Actions 可以包含任意异步操作,例如 API 请求、延迟操作等。
  • Actions 接收一个上下文对象(context),其中包含了与 store 实例具有相同方法和属性的内容。
  • 在 Vuex 的 store 对象中定义 actions。
  • 组件可以通过 this.$store.dispatch(‘actionName’) 来触发 action。

Getters(获取器):

  • Getters 用于从状态中派生出一些新的状态。
  • Getters 可以理解为 Vuex 的计算属性。
  • Getters 接收一个参数,即当前的状态(state)。
  • 在 Vuex 的 store 对象中定义 getters。
  • 组件可以通过 this.$store.getters.getterName 来获取派生出的新状态。

小结:
状态(state)是应用数据的存储中心,mutations 负责同步修改状态,actions 负责处理异步操作并提交 mutations,getters 用于从状态中派生新的状态。通过这些概念的配合使用,Vuex 实现了集中式的状态管理,使得状态在应用的各个组件中共享和可追踪。

vuex的工作原理

当组件需要改变状态时,它会调用一个 mutation 或 action。mutation 是同步操作,而 action 可以处理异步任务后再提交 mutation。通过 mutation 改变状态后,所有订阅该状态的组件都会更新。

使用 Vuex 可以带来以下好处:

集中式存储简化了状态管理。
组件之间共享数据更加方便。
能够追踪状态的变化,便于调试和排查问题。
支持插件扩展,可以实现更高级的功能,例如时间旅行调试。

这里对于集中式说明一下:

集中式

"集中式"是一种指导原则或架构模式,用于组织和管理应用程序的状态和数据。在集中式架构中,所有的状态和数据都被集中存储在一个中心位置,通常称为中心存储或中心仓库。这种中心化的存储使得应用程序的各个部分可以共享和访问相同的数据,而无需通过显式的传递或处理来传递数据。

在前端开发中,集中式状态管理已经成为一种常见的模式,用于管理复杂的应用程序状态。它在应用中引入一个中心化的状态管理器,该状态管理器存储着应用的状态,并提供一组方法来修改和获取状态。这种模式能够帮助开发者更好地组织、跟踪和共享状态,从而简化应用的开发和维护。

在 Vue.js 中,Vuex 就是一个集中式状态管理库,它使用集中式存储来管理应用程序的状态。Vuex 提供了一个全局的状态容器(store),用于存储应用的状态,并定义了一套规范的方法来修改和获取状态。这样,不同的组件可以通过读取和修改存储在 Vuex 中的状态来实现数据的共享和响应式更新。

集中式架构的优点包括:

  • 状态集中管理:所有组件共享一个状态源,简化了数据通信和同步。
  • 易于追踪和调试:由于状态集中存储,状态变更可追踪,方便调试和排查问题。
  • 可预测的状态流:通过明确定义了状态修改的方式,使得状态变更变得可控和可预测。
  • 提高可维护性:集中式管理有助于组织代码,使其更易读、扩展和维护。

vuex中的状态,它存储在哪里?如何改变?

在 Vue.js 应用中,Vuex 中的状态存储在一个名为 “store” 的对象中。Vuex 的 store 包含了应用的状态、mutations、actions 和 getters。

而要改变 Vuex 中的状态,应当遵循以下步骤:

  1. 在 Vuex 的 store 中定义一个状态(state)。例如,在 store.js 文件中:
import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

const store = new Vuex.Store({
  state: {
    count: 0 // 定义一个初始状态
  },
  mutations: {
    increment(state) {
      state.count++; // 修改状态的方法
    }
  },
  actions: {
    increment(context) {
      context.commit('increment'); // 触发 mutation 来修改状态
    }
  },
  getters: {
    getCount(state) {
      return state.count; // 获取状态的方法
    }
  }
});

export default store;
  1. 在你的组件中使用 Vuex 的状态和方法。例如,在某个组件中:
<template>
  <div>
    <p>Count: {{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script>
import { mapState, mapActions } from 'vuex';

export default {
  computed: {
    ...mapState(['count']) // 使用 mapState 辅助函数将状态映射到组件的计算属性中
  },
  methods: {
    ...mapActions(['increment']) // 使用 mapActions 辅助函数将 action 映射到组件的方法中
  }
};
</script>
  1. 在组件中,你可以直接通过计算属性或方法来访问和改变状态。
  • 访问状态:使用计算属性 count 来获取状态值。
  • 改变状态:点击按钮时,通过调用 increment 方法来触发 action,从而间接地触发 mutation,修改状态。

这样,当你在组件中触发 increment 方法时,Vuex 会按照定义的 mutation 来修改状态,并通过计算属性 count 实时展示更新后的状态。

通过以上步骤,你可以在 Vuex 中存储状态,并通过 mutations 和 actions 来改变它。这种集中式的状态管理可确保应用中的状态始终保持一致和可追踪。


Vuex 和 Redux 的区别

Vuex 和 Redux 是两种不同的状态管理库,分别针对 Vue.js 和 React 应用程序。尽管它们在不同的框架中使用,但它们有一些相似之处,也有一些明显的区别。

相似之处:

  • 集中化存储:Vuex 和 Redux 都采用集中式存储,将应用程序的状态集中管理在一个状态容器中。
  • 组件通信:两者都提供了一种可以让组件通过读取和修改共享状态来实现通信的机制。
  • 可预测的状态管理:通过明确定义状态变更的方式和规则,使得状态变更变得可控和可预测。

区别:

  • 生态系统和框架:Vuex 是专门为 Vue.js 设计的状态管理库,与 Vue.js 紧密集成,并且可以充分利用 Vue.js 的特性。而 Redux 是一个相对独立的库,可以与各种 JavaScript 框架结合使用,例如 React、Angular、Vue.js
    等。
  • API 的风格和概念:Vuex 使用了一些与 Vue.js 类似的概念,例如 getters、mutations 和 actions。它们基于 Vue.js 的响应式系统,可以直接在组件中使用。Redux
    则更加函数式,使用纯函数的方式来处理状态的改变。它没有依赖特定的框架,并使用了中间件来处理异步操作。
  • 容量和学习曲线:由于 Vuex 和 Vue.js 紧密结合,Vuex 的 API 简洁且易于上手,适合小到中等规模的应用程序。而 Redux 的概念和设计更加通用,但也相对复杂一些,适用于大型、复杂的应用程序。

为什么vuex中的mutations不支持异步

Vuex 中的 mutations 不支持异步操作是为了保持状态管理的简单性和可预测性。Mutations 用于同步修改状态,且必须是纯函数(pure function)。纯函数在给定相同的输入时,总是返回相同的输出,而且没有副作用。

这种设计选择有以下原因:

  • 易于追踪和调试:由于 mutations 是同步的,状态的变更可以被追踪和记录。这使得开发者能够更轻松地理解和调试应用程序中的状态变化。

  • 可预测的状态变更:由于 mutations 是同步执行的,可以准确地追踪状态变更的顺序和过程,这对于调试和跟踪状态变更的来源非常重要。这样可以确保状态变更是可控且可预测的。

  • 统一的状态流:通过限制 mutations 只能进行同步操作,可以保证状态的变更是按照特定的顺序发生的,避免了状态之间的竞争条件和不一致性。

如果需要进行异步操作,例如发起一个网络请求或进行定时器操作,可以使用 Vuex 提供的另一个概念——actions。Actions 允许执行异步操作,并最终将结果提交给 mutations 来修改状态。这种分离异步操作和同步操作的方式,使得代码更加清晰和易于理解。

小结:

Vuex中所有的状态更新的唯一途径都是mutation,异步操作通过 Action 来提交mutation实现,这样使得我们可以方便地跟踪每一个状态的变化,从而让我们能够实现一些工具帮助我们更好地了解我们的应用。
每个mutation执行完成后都会对应到一个新的状态变更,这样devtools就可以打个快照存下来,然后就可以实现 time-travel了。如果mutation支持异步操作,就没有办法知道状态是何时更新的,无法很好的进行状态的追踪,给调试带来困难。


Vuex 和 localStorage 的区别

  1. 最重要的区别
  • Vuex存储在内存
  • localstorage则以文件的方式存储在本地,localstorage只能存储字符串类型的数据,存储对象需要JSON的stringify和parse方法进行处理。

注意:读取内存比读取硬盘速度要快。

  1. 应用场景
  • Vuex是一个专门为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。Vuex用于组件之间的传值。
  • localstorage是本地存储,是将数据存储到浏览器的方法,一般是在跨页面传递数据时使用。
  • Vuex能做到数据的响应式,localstorage不能。
  1. 永久性
  • 刷新页面的时候Vuex存储的值会丢失,localstorage不会。

注意:很多人觉得用localstorage可以代替Vuex,对于不变的数据确实可以,但是当两个组件共用一个数据源(对象或数组)时,如果其中的一个组件改变了该数据源,希望另一个组件响应该变化时,Vuex才是首选,loaclstorage是无法做到的,这就是他们最大的区别。


v-model绑定vuex的state

第一种方法:

  • 直接在 <input> 中绑定 value,然后侦听 input 或者 change 事件,在事件回调中调用一个方法通过 commit 方法委派给 mutation 执行来修改 Vuex 中的数据。

第二种方法:

  • 在Vue中,我们可以使用"v-model"指令将表单元素的值和Vue实例的数据进行双向绑定。如果你想将"v-model"与Vuex的actions进行绑定,可以按照以下步骤进行操作:

1.首先,确保已经正确地设置了Vuex的store,并定义了相应的state、mutations、actions和getters。
2.在组件中,使用"v-model"绑定表单元素的值到一个本地的data属性。
3.在组件中使用计算属性或者方法,将本地的data属性和Vuex的state进行关联。
4.在计算属性或者方法中使用Vuex的commit方法或者dispatch方法来触发相关的mutations或者actions。

<template>
  <div>
    <input v-model="inputValue" type="text">
    <button @click="updateValue">提交</button>
  </div>
</template>

<script>
import { mapActions } from 'vuex';
export default {
  data() {
    return {
      inputValue: '',
    };
  },
  methods: {
    ...mapActions(['updateData']),
    updateValue() {
      this.updateData(this.inputValue);
      this.inputValue = ''; // 清空输入框的值
    },
  },
};
</script>

在上面的例子中,我们使用v-model指令将输入框的值绑定到inputValue属性上。然后,通过mapActions辅助函数将VuexupdateData action映射到组件的updateData方法中。在updateValue方法中,我们调用updateData方法,并传递inputValue作为参数,最后将inputValue重置为空字符串。这样,在调用updateData action时,就可以将输入框的值作为参数传递给Vuex store进行处理。

注意,为了使用mapActions辅助函数,你需要在组件中引入mapActions函数,如import { mapActions } from 'vuex';。同时,在Vuex store中定义了名为updateDataaction,用于接收并处理输入框的值。

这样,当用户输入值并点击提交按钮时,输入的值将被绑定到Vuexaction中,进而进行相应的状态更改和处理。


vue.js中ajax请求代码应该写在组件的methods中还是vuex的actions中?

根据 Vue.js 的最佳实践,一般情况下,将 Ajax 请求的代码放在 Vuex 的 actions 中是更好的选择。

在组件的 methods 中发起 Ajax 请求也是可行的,特别是当请求只涉及该组件内部状态或数据时。但是,如果多个组件都需要进行相同的请求或共享同一个请求的结果,使用 Vuex 的 actions 可以让代码更加清晰和可维护。

将 Ajax 请求放在 Vuex 的 actions 中的好处有以下几点:

  • 统一管理:将 Ajax 请求集中存放在 actions 中,可以更好地组织和维护代码。不同的组件可以通过调用相应的 action 来发起请求,而无需在每个组件中都编写重复的请求逻辑。

  • 共享数据:Actions 可以访问全局的 Vuex 状态,因此它们可以直接操作或更新全局状态。这使得多个组件可以共享同一个请求的结果,避免了重复获取数据并保持数据的一致性。

  • 异步操作处理:Actions 支持异步操作,例如发送 Ajax 请求、定时器操作等。通过在 actions 中进行异步处理,可以更好地管理异步操作的状态和响应,并确保状态变化的可追踪性。

  • 单一职责原则:将 Ajax 请求放在 actions 中可以遵循单一职责原则,使组件的 methods 只关注组件自身的逻辑,而不涉及网络请求的具体实现。

需要注意的是,并非所有的 Ajax 请求都需要放在 Vuex 的 actions 中。如果某个请求只涉及到一个组件的状态或数据,且不需要在其他组件中共享,那么直接在组件的 methods 中处理即可。


为什么vuex的Mutations是同步,而Actions是异步

在 Vuex 中,Mutations 和 Actions 在处理状态变更时具有不同的特点和用途。

Mutations(同步):

  • Mutations 是用于修改 Vuex 状态的地方,它们是同步操作。当需要改变状态时,通过提交一个 Mutation 来执行状态的变更。
  • Mutations 的主要目的是保证状态变更的可追踪性和可维护性。由于 Mutations 是同步操作,可以准确地追踪状态的变化,并且在调试过程中很容易找到引起状态变更的地方。
  • Mutations 必须是纯函数,即给定相同的输入,总是产生相同的输出,不应有副作用。

Actions(异步):

  • Actions 用于处理异步逻辑、调用 API 请求、或进行复杂的业务逻辑处理等。Actions 可以包含任意异步操作,例如发送 Ajax 请求、定时器操作等。
  • Actions 可以通过提交 Mutations 来改变状态,或者通过调用其他 Actions 进行复杂的异步流程控制。
  • Actions 的主要目的是解决异步操作的问题,并且可以通过返回 Promise 对象来实现更复杂的异步处理方式。
  • Actions 还可以用于将一系列 Mutations 组合为一个逻辑单元,提高了代码的组织性和可维护性。

异步操作通常涉及到网络请求、定时器回调、文件读写等,这些操作都是非阻塞的,会在后台进行。而同步操作是在主线程中立即执行的,会阻塞代码执行的进程。

通过将异步操作放在 Actions 中,可以更好地控制异步操作的流程和状态变化,避免直接在组件中处理异步逻辑带来的混乱。而 Mutations 作为同步的状态变更方式,可以确保状态变更的可追踪性和一致性。

需要注意的是,并非所有的状态变更都需要通过 Actions 进行异步处理。如果状态变更是同步的,可以直接提交 Mutations 进行修改,而不需要经过 Actions 层的处理。

综上所述,Vuex 的设计使得 Mutations 和 Actions 分别应用于同步和异步操作,在不同的场景下提供了更好的状态管理和异步处理的能力。

在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/784552.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

成为“AI+的UGC社交平台”,亚马逊云科技助力博宇盖乐向“3D UGC社交门户”迈进

随着元宇宙浪潮逐渐升温&#xff0c;以玩家为主导的UGC游戏平台获得空前关注。多元化的视觉呈现方式&#xff0c;人人可参与、交互的玩法生态&#xff0c;具有UGC属性的游戏平台在极大提升玩家参与度、增加游戏趣味性的同时&#xff0c;也为游戏行业的内容创作带来了新的想象空…

SkyWalking链路追踪中Trace概念以及Trace与span的关系

基本概念 在SkyWalking链路追踪中&#xff0c;Trace&#xff08;追踪&#xff09;是指一个请求或者一个操作从开始到结束的完整路径。它涵盖了分布式系统中所有相关组件的调用关系和性能信息。 具体来说&#xff0c;Trace包含了一系列的span&#xff08;跨度&#xff09;&…

Godot 4 着色器 - Shader调试

我之前用OpenCV进行图像相关处理&#xff0c;觉得已经很不错&#xff0c;结合GDI可以实现流畅的动画效果 直到近来用Shader后才发现&#xff0c;着色器更上一层楼&#xff0c;原来这是入了GPU的坑 Shader编程限制很多&#xff0c;各种不支持&#xff0c;看在它性能不错功能炫…

曲线长度预测神经网络设计与实现

在本文中&#xff0c;我们使用深度神经网络 (DNN) 解决几何中的一个基本问题&#xff1a;曲线长度的计算。 我们从监督学习方法的示例中学习了几何属性。 由于最简单的几何对象是曲线&#xff0c;因此我们重点学习平面曲线的长度。 为此&#xff0c;重建了基本长度公理并建立了…

Nacos搭建和使用保姆级教程

Nacos是集配置中心&#xff0c;注册中心功能于一体的Spring Cloud必备中间件&#xff0c;好用又省钱&#xff0c;简直绝了。 首先&#xff0c;配置中心&#xff0c;可选的方案有Apollo&#xff0c;但是得另外部署。 其次&#xff0c;注册中心&#xff0c;可选的方案有Eureka,…

【Java】JVM运行流程以及垃圾回收处理

目录 1.JVM简介 2.JVM 和《Java虚拟机规范》 3.JVM运行流程 1.类加载器 1.一个类的生命周期 2.双亲委派模型 2.JVM运行时数据区 1.方法区&#xff08;线程共享&#xff09; JDK 1.8 元空间的变化 运行时常量池 2.堆&#xff08;线程共享&#xff09; 2.1演示OOM异常…

王道考研数据结构--5.顺序栈

前言 日期&#xff1a;2023.7.25 书籍&#xff1a;2024年数据结构考研复习指导&#xff08;王道考研系列&#xff09; 内容&#xff1a;实现顺序栈的基本实现&#xff0c;主要功能如下&#xff1a; ❶ 栈的数据结构 ❷ 出栈 ❸ 入栈 ❹ 判栈空 ❺ 读栈顶 1.顺序栈的定义 //1.顺…

AP5216 DC-DC降恒流驱动IC LED电动摩托汽车 转向灯刹车灯雾灯驱动

产品描述 AP5216 是一款 PWM工作模式, 高效率、外围简单、内置功率管&#xff0c;适用于5V&#xff5e;100V输入的高精度降压 LED 恒流驱动芯片。输出最大功率可达9W&#xff0c;最大电流 1.0A。AP5216 可实现全亮/半亮功能切换&#xff0c;通过MODE 切换&#xff1a;全亮/半亮…

`MySQL`压缩包中的目录结构

MySQL压缩包中的目录结构如下&#xff1a; docs:存放文档和说明文件。include:存放头文件&#xff0c;用于在源代码中包含其他文件或库的函数、变量声明等。lib:存放库文件&#xff0c;包括MySQL客户端库和其他依赖库。bin:存放可执行文件&#xff0c;如MySQL服务器、客户端工…

jQuery入门到实战

jQuery入门到实战 &#x1f607;博主简介&#xff1a;我是一名正在攻读研究生学位的人工智能专业学生&#xff0c;我可以为计算机、人工智能相关本科生和研究生提供排忧解惑的服务。如果您有任何问题或困惑&#xff0c;欢迎随时来交流哦&#xff01;&#x1f604; ✨座右铭&…

iOS transform rotate总结

研究了一下transform的旋转设置&#xff0c;调了半天还以为是旋转写错了&#xff0c;发现是两个不同的view对象写错了&#xff0c;不管怎么说&#xff0c;还是记录一下旋转相关的操作吧。 参数都是弧度。 以一个图片来举例。 let img UIImageView.init() img.image UIImage…

计算机科学cs/电子信息ei面试准备——数学基础/线性代数复习

1. 中值定理 中值定理是反映函数与导数之间联系的重要定理&#xff0c;也是微积分学的理论基础&#xff0c;在许多方面它都有重要的作用&#xff0c;在进行一些公式推导与定理证明中都有很多应用。中值定理是由众多定理共同构建的&#xff0c;其中拉格朗日中值定理是核心&…

未来行星探索希望:新型多脚机器人-团队版

机器人正在探索一个模拟的外星环境 即使一个机器人失败了&#xff0c;其余的团队成员也可以抵消它的损失。 背景 虽然探测器取得了令人难以置信的发现&#xff0c;但它们的轮子可能会拖慢它们的速度&#xff0c;而不稳定的地形可能会导致损坏。虽然没有东西可以取代“毅力号”…

使用Jenkinsfile实现接口自动化测试持续集成

这里写目录标题 一、Jenkins Pipeline1、什么是流水线类型&#xff1f;2、流水线几个步骤: 二、用Jenkinsfile的方式去执行代码1、将jenkinsfile推送到远程仓库2、配置流水线 三、Jenkinsfile中post的使用1、背景和目的2、jenkinsfile文件编写3、构建job4、发送钉钉5、发送邮件…

周赛355(模拟、贪心、DFS+位运算+问题转化)

文章目录 周赛355[2788. 按分隔符拆分字符串](https://leetcode.cn/problems/split-strings-by-separator/)模拟&#xff08;注意转义&#xff09; [2789. 合并后数组中的最大元素](https://leetcode.cn/problems/largest-element-in-an-array-after-merge-operations/)贪心 [2…

Cryptopedia第4期|参与Sui生态交互,赢取SUI以及额外奖励

OKX Web3 wallet Cryptopedia第4期&#xff08;Sui生态交互专场&#xff09;现已正式开启。本期活动设置Cetus、MovEX、NAVI Protocol、Scallop和Typus Finance 5个DApp交互任务&#xff0c;用户每完成其中1个DApp交互任务并验证&#xff0c;即可参与抽取活动专属NFT。同时还有…

32位Cortex-M4 MCU:LPC54607J256ET180E、LPC54605J512BD100K 180MHz嵌入式微控制器

LPC546xx 32 位微控制器(MCU) 具有丰富的外设集、极低的功耗和增强的调试功能。 LPC546xx MCU系列采用ARM Cortex-M4内核&#xff0c;可提供以太网支持&#xff0c;并设有一个TFT LCD控制器和两个CAN FD模块。LPC546xx MCU旨在提高灵活性和性能可扩展性&#xff0c;可提供高达1…

小说小程序亲测完整版

小说小程序亲测完整版超火的微信小说小程序源码-自带采集 本套源码自带采集,拿到手的时候没有安装教程不过源码在测试的时候给大家把安装教程给补上了安装教程:PHP选择5.6以上的版本上传我们的后端解压 伪静态选择thinkphp 修改数据库链接文件config/database.php 然后我们…

小型企业使用CRM如何进行线索管理?有哪些功能?

很多小型企业面临着线索渠道单一、线索质量差、缺乏有效的跟进手段等问题。为了有效获取潜在客户&#xff0c;提高销售业绩&#xff0c;建议小型企业使用Zoho CRM系统&#xff0c;为您提供专业的小型企业CRM线索管理解决方案。 1、多渠道获客 CRM可以帮助企业从多个渠道触达客…

24考研数据结构-线性表4

目录 2.4.4单链表的查找操作&#xff08;默认带头节点&#xff0c;不带头节点后续更新&#xff09;2.4.4.1 按位查找操作2.4.4.2 按值查找操作2.4.4.3 求单链表的长度&#xff08;带和不带头节点都写了&#xff09;2.4.4.4 知识回顾与重要考点 2.4.5 单链表的创建操作2.4.5.1 头…