Vue的优点和特点

⼀、优点

  1. ⾸先是双向绑定

这也是我们使⽤框架的⼀⼤优势,VUE使⽤MVVC架构,在 VUE.2X 中使⽤Object.definProperty () 来劫持绑定数据,在VUE.3X 中使⽤ Proxy 劫持。如果按照最初的开发,我们前端开发不仅仅是需要完成业务代码的实现,同时还需要对每个 DOM元素进⾏获取绑定时间和数据。⽽双向绑定使得我们只需要专注于业务代码的实现上。

  1. 简单易学

VUE以简单,易上⼿的特点,在国内很多企业得到使⽤。同时作为国⼈开发的框架,中⽂⽂档,相关的论坛,⽣态完善,也便于我们学习和遇到问题的解决⽅案。

  1. 虚拟DOM
1
2
3
再过去或者我们原⽣JavaScript的时候,我们可以发现,当我们需要改变视图的数据的时候,我们往往需要先获取
到这个 DOM 元素,然后对其进⾏更新。也就是: 数据改变-->操作DOM--> 视图更新
但是我们在 VUE或者 React 中是直接改变 Data 就能实现视图的更新了。 数据改变-->视图更新

使⽤虚拟DOM,结合DIFF 算法能减少性能损耗。他会把我们多次的操作合并为⼀次,推送到真实的DOM。另外补充,我们说虚拟DOM减少损耗是有条件,是指在频繁操作的情况下,不然肯定简单的获取操作最快的,期间没有很多计算等处理。

  1. 组件化的思想

实现组件的封装,我们往往是使⽤组件开发的思想去封装组件,这样不仅便于复⽤也好维护修改!

⼆、缺点

1.⽣态不够完善

相⽐ angular 和 react 来说,⽣态环境较为不⾜,在构建⼤型的应⽤⽅⾯ ,企业使⽤ react 的⽐较多。⽽中

⼩型企业使⽤ VUE ⽐较多。

VUE的生命周期

Vue组件的生命周期是指Vue组件从创建到销毁所经历的一系列过程。这个过程可以大致分为以下几个阶段:

  1. 创建阶段
    • beforeCreate:在这个阶段,Vue实例已经被初始化,但数据观测(data observer) 、事件/监听器的配置都尚未设置,且el属性目前不可见。因此,在这个阶段无法访问到data、computed、methods、watch上的方法和数据。
    • created:在这个阶段,Vue实例已经创建完成,完成了数据观测(data observer) 、属性和方法的运算,以及watch/event事件回调。然而,挂载阶段还没开始,$el 属性目前不可见。这个阶段是访问data、computed、methods、watch上的方法和数据的最佳时机,因为在这个阶段,它们已经被初始化和设置好了。
  2. 挂载阶段
    • beforeMount:在这个阶段,Vue实例的$el和data都已被初始化,但还未挂载到页面上,即尚未渲染成真正的DOM元素。因此,在这个阶段,你仍然无法直接操作DOM。
    • mounted:在这个阶段,Vue实例已经被挂载到页面上,即已经被渲染成一个真正的DOM元素。你可以在这个阶段进行DOM操作,比如通过this.$el来访问和操作Vue实例对应的DOM元素。
  3. 更新阶段
    • beforeUpdate:在这个阶段,Vue实例的数据已经更新,但视图还未更新。也就是说,在这个阶段,你可以访问到更新后的数据,但视图还未反映这些变化。
    • updated:在这个阶段,Vue实例的数据和视图都已经更新完成。你可以在这个阶段进行依赖于DOM的更新操作。
  4. 销毁阶段
    • beforeDestroy:在这个阶段,Vue实例即将被销毁,但仍然完全可用。这是进行清理工作,如解绑全局事件、销毁定时器等的最佳时机。
    • destroyed:在这个阶段,Vue实例已经被销毁,所有的事件监听器、子实例以及和DOM的关联都已被移除。

以上就是Vue组件的生命周期的主要阶段。每个阶段都有其特定的用途和触发时机,开发者可以根据需要在不同的阶段执行相应的操作。

Docker与虚拟机的区别

架构差异

  • 虚拟机是基于hypervisor实现的,它会创建一套完整的虚拟硬件环境,包括虚拟处理器、内存、硬盘等,来模拟一台完整的计算机。
  • Docker则是基于容器化技术实现的,它使用Docker引擎来访问宿主机的操作系统,无需模拟出整套硬件环境,而是将应用程序打包到容器中运行。

隔离原理

  • 虚拟机通常隔离整个操作系统,虚拟机中运行的进程无法直接访问宿主机的资源和数据。
  • Docker使用Linux内核的namespace和cgroups功能,实现进程间的隔离,容器间可以共享宿主机的资源,同时保持互相独立运行。

部署效率

  • Docker采用镜像文件的方式,使得部署应用程序非常方便且快速,只需分发镜像到各个机器即可。
  • 虚拟机的部署需要安装和配置相应的操作系统,通常需要更多的时间和工作量。

资源利用率

  • Docker直接使用宿主机的硬件资源,因此在CPU、内存利用率上更高效。
  • 虚拟机由于需要运行一个完整的操作系统,资源消耗相对较多。

启动速度

  • Docker的启动速度非常快,通常属于秒级别。
  • 虚拟机启动通常需要几分钟的时间。