vue 部分知识点总结

简介: vue 部分知识点总结

计算属性和方法有什么区别,怎么选择?

在编程中,计算属性和方法都是用于处理数据的工具,但它们有一些区别。以下是它们的区别和如何选择的几个因素:

  1. 执行方式:计算属性是基于依赖的响应式系统,在数据变化时自动重新计算;而方法需要手动调用才会执行。
  2. 依赖跟踪:计算属性可以跟踪其所依赖的数据,并在相关数据发生变化时自动更新;而方法不会跟踪依赖,每次调用都会重新执行。
  3. 缓存:计算属性具有缓存机制,只有当依赖的数据发生变化时才会重新计算;而方法每次调用都会执行,没有缓存。
  4. 使用场景:计算属性适合处理根据已有数据派生出来的新值,比如对数组进行过滤、排序等操作;而方法适合执行一些具有副作用的操作,或者需要传递参数的情况。

如何选择使用计算属性还是方法取决于以下因素:

  1. 自动更新:如果需要根据数据的变化自动更新结果,则应该使用计算属性。
  2. 缓存需求:如果希望避免重复计算和提高性能,可以选择计算属性,因为计算属性具有缓存机制。
  3. 参数传递:如果需要传递参数,或者需要进行一些具有副作用的操作,那么应该使用方法。
  4. 数据变化频率:如果数据变化非常频繁,并且每次变化都需要重新计算结果,可能会导致计算属性的性能下降。在这种情况下,可以考虑使用方法。

综上所述,计算属性和方法都有各自的优势和适用场景。选择使用哪种取决于需求,根据是否需要自动更新、缓存、传递参数以及数据变化频率等因素来决定。

计算属性和侦听器

computed :

模板内的表达式非常便利,但是设计它们的初衷是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护,对于任何包含响应式数据的复杂逻辑,你都应该使用计算属性。

计算属性与methods区别:

computed是带缓存的,如果被依赖的变量不发生变化,则下次调用computed时不会重新计算结果。但是methods则是每次调用都会重新运行以得出实时的结果。

methods调用需要加();

watch:

侦听属性,(有两个参数,new,old,分别代表改变后和改变前的值)

侦听属性的命名,必须是data,computed,props中的变量名

(计算属性监测的是某个值的依赖的变化,侦听属性监测的是值自身的变化)。

虚拟DOM

虚拟DOM:Vue.js使用虚拟DOM来减少对实际DOM的操作,提升应用的性能。

工作原理:获取内存中的(虚拟)dom树和新生成的(虚拟)dom树,通过diff算法进行对比,得到需要更新的DOM元素,这两颗(虚拟)DOM树都是框架模拟出来的,就是个对象,旧的会被保存在内存中。

diff算法

diff算法:

分成三部分tree diff、 component diff、 element diff,分别去对比新旧(虚拟)dom树,DOM树中的组件,组件中的元素

tree diff

   新旧两个DOM树,逐层对比的过程,就是tree diff 当整个DOM树逐层对比完毕,则能找到要被更新的元素


component diff

在进行tree diff的时候,会对每一层的组件进行对比,如果新旧组件的类型相同,会进行element diff对比,如果不同,直接移除组件更新新组件

element diff

   在进行component diff对比时如果两个组件的类型相同,会对其内部的元素进行对比。

vue和react相同和不同

React和Vue是两个流行的JavaScript前端框架,它们有一些相同点,同时也存在一些不同之处。下面是React和Vue的相同点和不同点的总结:

相同点:

  1. 组件化开发:React和Vue都支持组件化开发,将页面划分为独立的、可复用的组件,便于代码的组织和维护。
  2. 虚拟DOM:React和Vue都使用虚拟DOM来提高性能,通过比较虚拟DOM树的差异来最小化实际DOM操作。
  3. 响应式更新:React和Vue都可以实现响应式数据更新,当数据发生改变时,会自动更新相关的视图。

不同点:

  1. 语法:React使用JSX语法,结合JavaScript编写组件;而Vue使用模板语法,通过HTML模板和Vue指令编写组件。
  2. 学习曲线:相对来说,React的学习曲线可能会稍微陡峭一些,需要理解并掌握JSX语法等概念;而Vue的学习曲线较平缓,核心概念简单易懂。
  3. 生态系统:React拥有庞大且活跃的生态系统,社区贡献了许多优秀的第三方库和工具;Vue的生态系统也在不断壮大,虽然相对React来说还较小,但也有一些流行的第三方库和插件。
  4. 可维护性:React的设计哲学更加灵活,需要开发者自己做出更多决策,对于大型项目需要有一定的架构和规范来保持代码可维护性;Vue在设计上更加约束,提供了推荐的工程实践和约定,使得代码的组织和维护相对容易。
  5. 社区和生态支持:React拥有更广泛的社区支持和更多现有的插件和库,同时也更适合搭配其他前端框架或库使用;Vue社区也越来越活跃,虽然相对React来说较小,但仍有一些优秀的插件和库。

总体而言,React和Vue都是优秀的前端框架,各有其独特的特点和优势。选择使用哪个框架取决于具体项目需求、团队技术背景和个人偏好等因素。无论选择React还是Vue,都能够享受到强大的前端开发能力和活跃的社区支持。

相关文章
|
3天前
|
JavaScript 前端开发
vue(1),小白看完都会了
vue(1),小白看完都会了
|
2天前
|
JavaScript 开发工具 git
Vue 入门系列:.env 环境变量
Vue 入门系列:.env 环境变量
8 1
|
2天前
|
缓存 监控 JavaScript
探讨优化Vue应用性能和加载速度的策略
【5月更文挑战第17天】本文探讨了优化Vue应用性能和加载速度的策略:1) 精简代码和组件拆分以减少冗余;2) 使用计算属性和侦听器、懒加载、预加载和预获取优化路由;3) 数据懒加载和防抖节流处理高频事件;4) 图片压缩和选择合适格式,使用CDN加速资源加载;5) 利用浏览器缓存和组件缓存提高效率;6) 使用Vue Devtools和性能分析工具监控及调试。通过这些方法,可提升用户在复杂应用中的体验。
10 0
|
2天前
|
JavaScript
vue知识点
vue知识点
10 0
|
3天前
|
JavaScript 前端开发 定位技术
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
Vue使用地图以及实现轨迹回放 附完整代码
|
3天前
|
JavaScript
Vue中避免滥用this去读取data中数据
Vue中避免滥用this去读取data中数据
|
3天前
|
JavaScript
vue中使用pinia及持久化
vue中使用pinia及持久化
6 0
|
3天前
|
JavaScript 前端开发 UED
Vue class和style绑定:动态美化你的组件
Vue class和style绑定:动态美化你的组件
|
3天前
|
JavaScript 前端开发 API
Vue 监听器:让你的应用实时响应变化
Vue 监听器:让你的应用实时响应变化
|
JavaScript 测试技术 容器
Vue2+VueRouter2+webpack 构建项目
1). 安装Node环境和npm包管理工具 检测版本 node -v npm -v 图1.png 2). 安装vue-cli(vue脚手架) npm install -g vue-cli --registry=https://registry.
991 0