谈谈对vue的理解

698 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第八天, 点击查看活动详情

vue是什么

Vue.js是一个用于创建用户界面的开源渐进式JavaScript框架,也是一个创建单页面应用的Web应用框架。2016年一项针对JavaScript的调查表明,Vue有着89%的开发者满意度。在GitHub上,该项目平均每天能收获95颗星,为Github有史以来星标数第3多的项目同时也是一款流行的JavaScript前端框架,旨在更好地组织与简化Web开发。Vue所关注的核心是MVC模式中的视图层,同时,它也能方便地获取数据更新,并通过组件内部特定的方法实现视图与模型的交互PS: Vue作者尤雨溪是在为AngularJS工作之后开发出了这一框架。他声称自己的思路是提取Angular中为自己所喜欢的部分,构建出一款相当轻量的框架最早发布于2014年2月。

Vue核心特点

数据驱动(MVVM)

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

组件化

  1. 什么是组件化?

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

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

指令系统

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

  • 常用指令
    • 条件渲染指令v-if
    • 列表渲染指令v-for
    • 属性绑定指令v-bind
    • 事件绑定指令v-on
    • 双向数据绑定指令v-model 没有指令用DOM操作的话,咱是不是得先获取DOM然后......

Vue和React对比

这里做几个简单的类比吧,当然没有好坏之分,只是使用的场景不同。

相同点

  • 都有组件化思想
  • 都支持服务器渲染
  • 都有Virtual DOM(虚拟dom)
  • 数据驱动视图
  • 都有支持native的方案:VueweexReactReact native
  • 都有自己的构建工具:Vuevue-cliReactCreate React App

区别

  • 数据流向不同。react从诞生开始就推崇单向数据流,而Vue是双向数据流
  • 数据变化实现的原理不同。react使用的是不可变数据,而Vue使用的是可变数据。
  • 组件化通信的不同。react中我们通过使用回调函数来进行通信的,而Vue中子组件向父组件传递信息有两种方式:事件和回调函数