Skip to content

说说你对Vue的了解

以下从vue的几个核心特性逐步分析

1.数据驱动mvvm模型

Model: 模型层,负责处理业务逻辑以及和服务器端进行交互。 View: 视图层,负责将数据转换为UI展示出来,可以简单理解为html页面。 ViewModel:视图模型层,负责将模型和视图连接起来,是Model和View的沟通的桥梁。

2.组件化

什么是组件化?

一句话来说就是把图形、非图形的各种逻辑都抽象为一个统一的概念(组件)来实现的一种开发模式,在vue中每一个.vue文件都可以看作是一个组件。

组件化的优势

降低整个系统的耦合度,在保持接口不变的情况下,我们可以替换不同的组件快速完成需求,例如输入框,可以替换为日历、时间、等组件作具体的实现。 调试方便,由于整个系统是通过组件组合起来的,在出现问题的时候,可以用排除法直接移除组件,或者根据报错的组件快速定位问题,之所以能够快速定位,是因为每个组件之间的低耦合,职责单一,所以逻辑分析起来会比整个系统简单。 提高可维护性,由于每个组件的职责单一,并且组件在系统中是可复用的,所以对代码进行优化可获得系统的整体升级。

3. 指令系统

解释:指令 (Directives) 是带有 v- 前缀的特殊属性作用:当表达式的值改变时,将其产生的连带影响,响应式地作用于 DOM

常用的指令

条件渲染指令 v-if 列表渲染指令v-for 属性绑定指令v-bind 事件绑定指令v-on 双向数据绑定指令v-model 以及自定义指令

4. 插件

插件是一种能为 Vue 添加全局功能的工具代码

5.一些内置组件

两个基于状态变化的过渡和动画组件 Transition和TransitionGroup

KeepAlive 是一个内置组件,它的功能是在多个组件间动态切换时缓存被移除的组件实例。

Teleport 是一个内置组件,它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去。

Suspense 是一个内置组件,用来在组件树中协调对异步依赖的处理。它让我们可以在组件树上层等待下层的多个嵌套异步依赖项解析完成,并可以在等待时渲染一个加载状态。

6.和React的对比

相同点

  • 都有组件化思想
  • 都支持服务器端渲染SSR
  • 都有Virtual DOM(虚拟dom)
  • 数据驱动视图
  • 都有支持native的方案:Vue的weex、React的React native
  • 都有自己的构建工具:Vue的vue-cli、React的Create React App

区别

  • 数据流向的不同。react从诞生开始就推崇单向数据流,而Vue是双向数据流(单向是数据更新视图,双向是视图也可以更新数据)
  • 数据变化的实现原理不同。react使用的是不可变数据,而Vue使用的是可变的数据
  • 组件化通信的不同。react中我们通过使用回调函数来进行通信的,而Vue中子组件向父组件传递消息有两种方式:事件和回调函数
  • diff算法不同。react主要使用diff队列保存需要更新哪些DOM,得到patch树,再统一操作批量更新DOM。Vue 使用双向指针,边对比,边更新DOM