vue2的了解

2023-11-19

目录

一、性能优化

1.尽可能拆分组件,利用组件的可复用性,组件的按需加载。

2.keep-live和v-once的使用。

3.混入mixin的使用。

4.vuex的使用。

5.合理使用v-if和v-show。

6.防抖和节流的使用,进行少执行和不执行。

7.使用第三方组件的按需加载。

8.图片懒加载。

9.路由懒加载。

10.抽取出共同的样式放在global.css中,共同的方法。

二、vue

1.keep-live

keep-live是Vue内置的一个组件,可以使被包含的组件保留状态,或避免重新渲染。
在组件切换过程中将状态保留在内存中,防止重复渲染DOM,减少加载时间及性能消耗,提高用户体验性

<keep-alive>
  <component>
    <!-- 该组件将被缓存! -->
  </component>
</keep-alive>

2.vuex

vuex是使用vue中必不可少的一部分,基于父子、兄弟组件,我们传值可能会很方便,但是如果是没有关联的组件之间要使用同一组数据,就显得很无能为力,那么vuex就很好的解决了我们这种问题,它相当于一个公共仓库,保存着所有组件都能共用的数据。

其中vuex包括

1.state:存放数据。

2.mutations:保存所有方法,用来改变state的数据。(commit触发,同步操作)

3.actions:暴露给用户使用,借此触发mutations中的方法,保存数据(dispatch触发,可执行异步操作)。

4.getters:相当于computed是计算属性,在数据展示前进行一些变化处理,具有缓存功能,能够提高运行效率。

5.modules:模块化,拆分为多个数据空间。(注意用namespaced命名空间,防止模块之间数据的混肴)。

3.v-once

作用是定义它的元素或组件只渲染一次,包括元素或 组件的所有子节点。首次渲染后,不再随数据的变化重新渲染,将被视为静态内容。

如果只想页面加载时显示一次,后续不在因为数据信息的变动而变动时,就可以采取v-once实现。

<span v-once>{{msg}}</span>

4.mixin

https://blog.csdn.net/weixin_67490903/article/details/126372931

5.v-if和v-show

v-if和v-show这两个指令都可以用来控制元素的可见/不可见。

v-if有更高的切换开销(销毁~重建)而v-show有更高的初始渲染开销:不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换 它操作的display:none/block属性。如果在运行时条件很少改变,则使用 v-if 较好。

v-show适合做纯页面的交互,例如:抽屉菜单,折叠面板等;v-if适合结合v-else来根据不同的逻辑展示内容,例如用户登录之后根据权限不同来展示不同类型的头像图标。

在vue2中v-if必须写在v-for的上一级标签中。v-for优先级要比v-if高。

在vue3中v-if优先级要高于v-for。

6.防抖和节流

防抖和节流都是用来控制某个函数在一定时间内触发次数,两者都是为了减少触发频率,以便提高性能或者说避免资源浪费。

1.防抖就是指触发事件后在 n 秒内函数只能执行一次,如果在 n 秒内又触发了事件,则会重新计算函数执行时间。

比如说,你转行做外卖员,某天你接到一个订单,准备送,但是感觉不划算,于是准备等一分钟在送,如果这一分钟内有了新的一单,你还会在重新等一分钟,直到一分钟内没有新订单,你才开始配送。

2.节流就是指连续触发事件但是在 n 秒中只执行一次函数。节流会稀释函数的执行频率。

比如一个按钮,在一分钟内,不管你点了多少次,在这个时间内,只会算作一次请求。

7.promise

promise是异步编程的一种解决方案,可以解决回调地狱。

Promise对象代表一个异步操作,有三种状态:pending(进行中)、fulfilled(已成功)和rejected(已失败)。

promise本身是同步的,他的.then和.catch是异步微任务。

利用async和await可以直接获取promise成功状态的值。使用await外面必须要有async。

错误捕捉用try.catch。

8.freeze冻结数据

http://t.csdn.cn/PZq62

9.http状态码

http://t.csdn.cn/JJl0P

10.重绘和回流

重绘:简单来说就是重新绘画,当给一个元素更换颜色、更换背景,虽然不会影响页面布局,但是颜色或背景变了,就会重新渲染页面,这就是重绘。

回流:当增加或删除dom节点,或者给元素修改宽高时,会改变页面布局,那么就会重新构造dom树然后再次进行渲染,这就是回流。display:none是样式改变,也会改变页面布局,属于回流。

  • 重绘不会引起dom结构和页面布局的变化,只是样式的变化,有重绘不一定有回流。
  • 回流则是会引起dom结构和页面布局的变化,有回流就一定有重绘。
    不管怎么说都是会影响性能。

11.虚拟dom

在页面初次渲染时,真实dom和虚拟dom会同时构建,在刚开始会略微影响页面加载速度。

通过diff算法结合key,进行两者之间对比,key值是两者之间的桥梁,具有唯一性,在一些情况下不能用index。


总结

每天学一点,迟早成仙!!!
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue2的了解 的相关文章

随机推荐

  • python pandas对某列数据根据条件替换相应内容

    有两种实现方式 1匿名函数 df address df address apply lambda row row if row endswith 法院 else row 法院 print df address 2where条件 df add
  • 华为OD机试真题- 关联子串-2023年OD统一考试(B卷)

    题目描述 给定两个字符串str1和str2 如果字符串str1中的字符 经过排列组合后的字符串中 只要有一个字符串是str2的子串 则认为str1是str2的关联子串 若str1是str2的关联子串 请返回子串在str2的起始位置 若不是关
  • Python中保留两位小数的几种方法

    保留两位小数 并做四舍五入处理 方法一 使用字符串格式化 gt gt gt a 12 345 gt gt gt print 2f a 12 35 gt gt gt 方法二 使用round内置函数 gt gt gt a 12 345 gt g
  • VMware Fusion(虚拟机)免费下载正版授权(Mac升级到Big Sur后旧版VM显示物理内存不足)

    下载教程可以参考本博客 安装Linux系统教程可查询本人此博客 描述 MacbookPro在升级到macOS Big Sur后 无法打开VM虚拟机 打开时显示物理内存不足 如下图 所以在VM官网下载最新版VM虚拟机 12 1 1 个人免费正
  • 如何解决出现Unknown at rule @applyscss(unknownAtRules)警告?

    在nuxt框架当中使用tailwindcss出现 apply下面出现警告 怎么取消这个警告呢 安装 Stylelint 首先 我们需要安装Stylelint本身和一个包含合理标准配置的包 npm install save dev style
  • tensorflow1.14.0版本安装指南

    1 安装tensorflow1 14 0版本 注意不要安装GPU版本 注意一定要指定1 14 0版本号 1 python虚拟环境下输入 pip install tensorflow 1 14 0 i https pypi tuna tsin
  • SpringBoot整合JPA 数据库自动增加字段问题记录

    Spring整合JPA启动的时候忽然发现 数据增加了两个字段 我当时就很纳闷了 我自己写的有实体有字段 并且跟数据一致 为什么要给我增加两个字段哪 我的实体如下 启动的时候就变成这样了 然后就找度娘问原因 度娘告诉我JPA会把我们的驼峰命名
  • TensorFlowX.Y核心基础与AI模型设计01: TF模型从0到1搭建流程【加载数据、训练数据、保存模型、推理图像】

    上一篇文章 TensorFlowX Y核心基础与AI模型设计开篇 1 思想启蒙 mnist手写体从模型搭建到图片识别 通过手写字体认识模型的构建发整体流程 加载数据 构建模型 训练模型 保存模型 测试代码 import tensorflow
  • 力扣leecode-python解法笔记之202. 快乐数

    class Solution object def isHappy self n type n int rtype bool if n 1 return True def square each num 定义一个用于计算每一位数平方和的函数
  • Linux系统安装JDK1.8

    1 安装JDK 可以直接使用finallshell拖过去 统一放在linux中 usr soft目录下 1 解压该软件 tar zxvf jdk 8uXXXX tar gz 2 重命名解压后的目录 3 配置jdk的环境变量 再任何目录下都可
  • STM32学习笔记7——浮点数四舍五入

    C 中浮点转换为整型是截断的 直接将后面的小数去掉 而不是四舍五入 如 uint16 t 12 89 12 而不是13 项目中写了个小函数 将浮点数输入后 直接用7段译码管显示 用上述方法转换为整型后发现有显示误差 解决方法如下 1 定义一
  • 往Oracle数据库导入数据的两种方法

    在升级项目中 经常需要对数据进行迁移 我这次主要操作的是将数据从Access迁移到Oracle中 如何将数据导入Oracle数据库中 我总结了两种方法 供参考 1 SQL loader 1 1 主要特征 SQL loader是Oracle数
  • python图像分割模型_图像分割python

    常用的十大 python 图像处理工具 本文为 AI 研习社编译的技术博客 原标题 10 Python image manipulation tools 作者 Parul Pandey 翻译 安其罗 乔尔 JimmyHua 编辑 王立鱼 原
  • vue树形组件封装(移动端)

    最近在做移动端的项目 由于没有找见移动端树形组件 所以封装了一个 包含加载所有数据的功能以及懒加载功能 以下是目录结构 以下是完成后的ui 点击左侧切换 展开 收起 点击右侧其他操作 然后直接上代码 以下是懒加载的例子 一次性全部加载的就不
  • 一图看懂 pandas 模块(1):提供高性能、易用的数据结构和数据分析工具,资料整理+笔记(大全)

    本文由 大侠 AhcaoZhu 原创 转载请声明 链接 https blog csdn net Ahcao2008 一图看懂 pandas 模块 提供高性能 易用的数据结构和数据分析工具 资料整理 笔记 大全 摘要 模块图 类关系图 模块全
  • 【数据结构】单向链表的修改和删除

    单向链表的修改和删除 从单链表中删除一个节点思路 1 找到需要删除节点的前一个节点temp 2 temp next temp next next 3 被删除的节点 将不会有其他引用指向 会被垃圾处理机制回收 1 单向链表的修改操作 1 1
  • python轻量级web框架 flask

    文章目录 一 flask介绍 1 flask的构成 2 使用flask框架的原因 3 flask的优点 4 flask构成部分的介绍 5 flask特点 6 flask的基本模式 7 使用的flask版本 8 flask提供了什么 二 开始
  • 正方教务系统成绩爬虫的实现

    正方教务系统爬虫 简介 一 设计思路以及工具 二 实现步骤 1 登陆流程 1 1抓取登陆链接 1 2 验证码获取 1 3 发送登陆请求 2 读入数据 2 1 获取历年成绩对应的 VIEWSTATE 3 数据处理 3 1 存放数据 总结 简介
  • 子查询与JOIN&LEFT JOIN比较

    MySQL从4 1版本开始支持子查询 使用子查询进行SELECT语句嵌套查询 可以一次完成很多逻辑上需要多个步骤才能完成的SQL操作 子查询虽然很灵活 但是执行效率并不高 原因 执行子查询时 MySQL需要创建临时表 查询完毕后再删除这些临
  • vue2的了解

    目录 前言 一 性能优化 二 vue 1 keep live 2 vuex 3 v once 4 mixin 5 v if和v show 6 防抖和节流 7 promise 8 freez冻结数据 9 http状态码 10 重绘和回流 11