Vue的学习之旅-part5

Vue的学习之旅-part5

  • 虚拟DOM的原理
    • 用JS模拟DOM结构
  • vue的方法、计算属性、过滤器
    • computed:{} 计算属性
    • computed计算属性的完全体
    • computed计算属性和methods方法的区别:
    • 过滤器:filters:{ 多个方法 }
  • Vuex 状态管理模式

前几篇博客: Vue的学习之旅-part1
前几篇博客: Vue的学习之旅-part2
前几篇博客: Vue的学习之旅-part3
前几篇博客: Vue的学习之旅-part4

书接上回,讲完了vue中自带的指令,那这里接着从讲讲vue的虚拟DOM原理、vue的方法、计算属性、过滤器开始吧~

虚拟DOM的原理

vue先用JS来模拟DOM结构,然后去进行一系列的计算,计算出最小的变更,然后再去操作DOM(这样就最大程度上避免一些无用功的操作)

用JS模拟DOM结构

在这里插入图片描述
通过diff算法,找出变更的地方,只修改那里,大大减少dom的操作,提升性能

vue的方法、计算属性、过滤器

computed:{} 计算属性

Vue中的计算属性是一种依赖于响应式数据的属性,它能够在依赖的数据发生变化时自动更新

计算属性在Vue中是非常有用的,它们可以用来处理一些复杂的逻辑,同时保持模板的简洁性。以下是计算属性的一些关键特点:

  • 依赖追踪:计算属性是基于它们的依赖关系进行缓存的。只有在它的相关依赖发生变化时才会重新计算。
  • 缓存机制:计算属性的值会被缓存,这意味着只要依赖的数据没有变化,多次访问计算属性会立即返回之前的计算结果,而不会再次执行计算函数。
  • 响应式更新:当计算属性所依赖的响应式数据发生变化时,计算属性会重新计算,确保数据始终保持最新状态。
  • 模板中使用:计算属性可以在模板中像普通数据属性一样使用,使得模板更加简洁和易于维护。
  • 组合使用:计算属性可以依赖于其他计算属性或数据属性,这允许创建复杂的逻辑关系,同时保持代码的模块化和可读性。

计算属性是Vue中非常强大的一个功能,它提供了一种高效的方式来处理数据变化,并且能够自动更新视图。在实际应用中,合理利用计算属性可以极大地提高应用的性能和用户体验。

注意:因为是属性,里面的方法命名时尽量不要起名为:getCount这样有get这种动词的名字,直接叫做count就行,这样才是属性

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

computed计算属性的完全体

computed计算属性(一般我们用的是简写)
在这里插入图片描述
这种简写等价于如下写法:
在这里插入图片描述
computed计算属性的真正样子 (完全体) 如下:
在这里插入图片描述
设置set方法后的使用:
在这里插入图片描述
在这里插入图片描述
因为computed计算属性 是 属性,所以调用其set方法就是直接赋值 调用get方法则是直接app.fullName 即可调用get方法

computed计算属性和methods方法的区别:

  • computed计算属性中的方法,在计算属性中会进行缓存,多次调用时,如果发现计算值没有发生变化,则会直接使用上次的结果,不再进行重复调用。
  • 而methods方法调用几次就会执行击此,每次重新执行,损耗较大。

计算属性(computed)和方法(methods)在Vue中都是用于执行数据操作的,但它们在使用方式、缓存机制和参数传递上有所不同。具体如下:

  1. 使用方式:计算属性可以像访问对象的属性一样直接访问,而方法需要通过调用函数的方式执行。这意味着计算属性可以作为模板中的绑定表达式直接使用,而方法则需要在模板中使用括号进行调用。
  2. 缓存机制:计算属性具有缓存机制,只有当它所依赖的数据发生变化时才会重新计算,否则它会返回之前的计算结果,这提高了性能。而方法每次调用都会执行函数,即使返回的是相同的结果,没有缓存机制。
  3. 参数传递:计算属性不支持传递参数,它只能在定义时接受固定的依赖。方法则可以接收任意数量的参数,这使得方法更加灵活,适用于需要动态参数的场景。

计算属性适合用于处理复杂的数据逻辑,尤其是当依赖的数据变化不频繁时,可以利用缓存提高性能。而方法则适合用于处理需要动态参数或没有复用需求的操作。在实际开发中,应根据具体需求选择使用计算属性还是方法。


过滤器:filters:{ 多个方法 }

一般用于处理时间格式、日期格式等地方
在这里插入图片描述
在这里插入图片描述
有些地方需要重复使用某种格式的时候,可以通过使用fiters过滤器,达到复用和简便的功能。

Vuex 状态管理模式

Vuex是专为Vue.js设计的状态管理模式,用于集中管理应用的所有组件状态

在Vue的开发中,当需要在多个组件之间共享状态时,传统的组件间传值方式可能会变得复杂且难以维护。这时,使用Vuex可以简化这个过程,因为它提供了一个中央化的存储来管理状态,从而解决了跨组件通信的问题。

以下是一些Vuex的核心概念:

  • Store:它是Vuex中用来管理状态的对象,包括stategettermutationaction四个主要属性。
  • State:这是Vuex的数据源,用于存放应用的状态数据。任何组件都可以通过$store.state.数据名的方式访问这些状态。
  • Getter:它允许对状态进行过滤和处理,然后输出结果。这通常用于从store中的state派生出一些新的计算属性。
  • Mutation:这是更改Vuex的store中的状态的唯一方法,它必须是同步的。
  • Action:用于执行异步操作,例如发送HTTP请求。在操作完成后,通常会通过提交mutation来更改状态。
  • Module:当store对象变得庞大时,可以将其分割成多个module,每个module都有自己的stategettermutationaction

总的来说,虽然Vuex提供了强大的状态管理功能,但并不是所有应用都需要使用它。对于小型或者简单的应用,直接使用Vue的组件间传值可能更加合适。但在开发大型SPA(单页应用)时,使用Vuex可以帮助你更好地组织代码,使得状态变化更加可预测和易于调试。

Vuex采用集中式存储的方法,管理应用的所有组件的状态
如果不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。
如果应用够简单,应该使用简单的 store 模式


博主 DTcode7 带您 溺亖在知识的海洋里,嘿嘿嘿.~
🐒 个人主页—— DTcode7 的博客 🐒
《微信小程序相关博客》
《Vue相关博客》
《前端开发习惯与小技巧相关博客》
《AIGC相关博客》
《photoshop相关博客》
😚 吾辈才疏学浅,摹写之作,恐有瑕疵。望诸君海涵赐教。望轻喷,嘤嘤嘤 🙈
🕍 愿斯文对汝有所裨益,纵其简陋未及渊博,亦足以略尽绵薄之力。倘若尚存阙漏,敬请不吝斧正,俾便精进!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

城市道路井盖破损丢失目标检测数据集VOC-1377张

数据集格式:Pascal VOC格式(不包含分割路径的txt文件和yolo格式的txt文件,仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数):1377 标注数量(xml文件个数):1377 标注类别数:4 标注类别名称:["jg","jg…

ARM64架构栈帧回溯

文章目录 前言一、栈帧简介二、demo演示 前言 请参考:ARM64架构栈帧以及帧指针FP 一、栈帧简介 假设下列函数调用: funb() {func() }funa() {funb() }main() {funa() }main函数,funa函数,funb函数都不是叶子函数,其…

AWS服务器有哪些优势?

作为一家总部在美国的公司,AWS为什么会受到中国企业的喜爱?他有什么优势?九河云作为AWS合作伙伴,将会带读者展现使用AWS的优势。 首先是作为跨国企业,AWS在全球有数十个区域节点,这种广泛的地域覆盖不仅有…

IDEA2023连接服务器docker并部署ruoyi-cloud-plus项目

文章目录 TCP 方式连接docker1. 服务器docker配置修改查看虚拟机中Docker配置文件位置修改配置文件重启docker服务关闭防火墙 2. idea安装docker插件3. idea连接docker服务 部署ruoyi-cloud-plus项目1. 项目环境说明2. 安装Centos73. 安装docker4. idea配置服务器SSH连接5. ide…

局域网内部使用的视频会议系统推荐

随着远程办公的普及和全球化的发展趋势,企业需要一个高效、灵活、安全的音视频会议解决方案,以支持远程办公的协同工作、跨地域沟通等需要。私有化音视频会议就是一个适合企业自身部署的解决方案。它不仅能够满足企业信息管理和保密的需求,而…

Latent Diffusion Models

Latent Diffusion Models(潜在扩散模型,LDMs)是一种生成模型,它结合了扩散模型和变分自动编码器(VAES)的优势,从文本或其他输入模式生成高质量图像。近年来,这些模型受到了相当大的关注,因为它们能够在保持对发电过程的控制的同时产生高度现实和多样化的产出。 Laten…

【灵境矩阵】零代码创建AI智能体之行业词句助手

欢迎来到《小5讲堂》 这是《灵境矩阵》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 创建智能体选择创建方式零代码 基础配置头像名称简介指令开场白…

从零开始写 Docker(十)---实现 mydocker logs 查看容器日志

本文为从零开始写 Docker 系列第十篇,实现类似 docker logs 的功能,使得我们能够查查看容器日志。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识: 核心原理&#x…

git push报错remote: Please remove the file from history and try again

原因:上传文件超过100M,找到此文件删除即可。 1、查看是哪个文件过大,此处对用红框里面的 a6de1336c67c3bac77757c5eff8c8001823f7c92,得到具体的文件名称 git rev-list --objects --all | grep a6de1336c67c3bac77757c5eff8c80…

Pytest自动化测试框架完美结合Allure

简介 Allure Framework是一种灵活的、轻量级、多语言测试报告工具。 不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容, 而且还允许参与开发过程的每个人从日常执行中提取最大程度的有用信息和测试。 从开发/测试的角度来看: Allure报告可以…

静音检测电路芯片D3703F——工 作 电 压 范 围 宽 : 3.2V ~ 16.0V,可以用于汽 车 音 响 系 统

概 述 : D3703F 是 一 块 汽 车 音 响 静 音 检 测 电 路 。 用 于 音 响 系 统 检 测 在 放 音 或 快 进 / 退 时 进 行 静 音 检 测 。 D3703F 的 的 电 压 范 围 : 3.2V ~ 16V , 信 号 检 测 和 静 音 时 间 可 通 过 外 围…

私有化即时通讯软件,WorkPlus提供的私有化、安全通讯解决方案

在当今信息化快速发展的时代,安全问题已经成为各行各业关注的焦点。特别是在金融、政府单位和芯片等关键行业,信息安全的重要性不言而喻。这些行业涉及到大量的敏感数据和关键信息,一旦发生泄露,可能会对国家安全、企业利益甚至个…

JavaSE——常用API进阶二(2/8)-BigDecimal(BigDecimal的常见构造器、常用方法,用法示例,使用规范)

目录 BigDecimal BigDecimal的常见构造器、常用方法 用法示例 使用规范 在进行浮点型运算时,直接使用“ - * / ”可能会出现运算结果失真,例如: System.out.println(0.1 0.2); System.out.println(1.0 - 0.32); System.out.println(1.…

IO流【内存流、打印流、随机访问流】;初识网络编程

day37 IO流 继day36 各种流 对象流 day36 内存流 class ByteArrayInputStream – 内存输入流 class ByteArrayOutputStream – 内存输出流 注意: 内存流是程序和内存交互,跟文件无关内存流是程序到内存的通道,是关闭不掉的 应用场景&#x…

互联网轻量级框架整合之设计模式

反射技术 Java的反射技术能够通过配置类的全限定名、方法和参数完成对象的初始化,甚至反射某些方法,大大的增强了Java的可配置型,这也是Spring IoC的底层原理,Java的反射技术覆盖面很广,包括对象构建、反射方法、注解、…

(Java)数据结构——图(第七节)Folyd实现多源最短路径

前言 本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。 Folyd实现原理 中心点的概念 感觉像是充当一个桥梁的作用 还是这个图 我们常在一些讲解视频中看到,就比如dist(-1)&#xff0…

石子合并(区间dp)-java

石子合并问题是经典的区间dp问题,我们需要枚举中间端点k的情况从而来推出dp数组的值。 文章目录 前言 一、石子合并问题 二、算法思路 1.问题思路 2.状态递推公式 二、代码如下 代码如下(示例): 2.读入数据 3.代码运行结果如下&am…

Java开发面试题分享

目录 1、简述MyISAM和InnoDB的区别 2、简述Hash和B树索引的区别 3、简述MyBatis的实现逻辑 4、#{}和${}的区别 5、简述Mybatis的优缺点 6、当实体类中的属性名和表中的字段名不一样时怎么办? 7、resultType与resultMap的区别 8、如何执行批量插入 9、Mybat…

蓝桥杯-数组切分

问题描述 已知一个长度为 N 的数组: A1,A2,A3,...AN 恰好是1~ N的一个排列。现 在要求你将 4 数组切分成若干个 (最少一个,最多 N 个)连续的子数组,并且 每个子数组中包含的整数恰好可以组成一段连续的自然数。 例如对于 4 1,3,2,4,一共有 5 种切分方法: 1324:每个单独的数显然…

(五)PostgreSQL的管理工具pgAdmin

PostgreSQL的管理工具pgAdmin pgAdmin 是一款流行的开源图形界面管理工具,用于 PostgreSQL 数据库的管理和开发。它提供了一个易于使用的界面,允许用户执行各种数据库任务,如创建和修改数据库对象(表、视图、索引等)、…