vue----介绍

手册:https://www.runoob.com/vue2/vue-start.html

 

Vue 渐进式 JavaScript 框架

概述

Vue (读音 /vjuː/,相似于 view) 是一套用于构建用户界面的渐进式框架,发布于 2014 年 2 月。与其它大型框架不一样的是,Vue 被设计为能够自底向上逐层应用。Vue 的核心库只关注视图层,不只易于上手,还便于与第三方库(如:vue-router(页面跳转)vue-resourcevuex(状态管理框架))或既有项目整合。javascript

  • Axios:前端通讯框架;由于 Vue 的边界很明确,就是为了处理 DOM,因此并不具有通讯能力,此时就须要额外使用一个通讯框架与服务器交互;固然也能够直接选择使用 jQuery 提供的 AJAX 通讯功能;

什么是渐进式?

在我看来,渐进式表明的含义是:主张最少。
每一个框架都不可避免会有本身的一些特色,从而会对使用者有必定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式。
好比说,Angular,它两个版本都是强主张的,若是你用它,必须接受如下东西:
- 必须使用它的模块机制- 必须使用它的依赖注入- 必须使用它的特殊形式定义组件(这一点每一个视图框架都有,难以免)html

因此Angular是带有比较强的排它性的,若是你的应用不是从头开始,而是要不断考虑是否跟其余东西集成,这些主张会带来一些困扰。前端

好比React,它也有必定程度的主张,它的主张主要是函数式编程的理念,好比说,你须要知道什么是反作用,什么是纯函数,如何隔离反作用。它的侵入性看似没有Angular那么强,主要由于它是软性侵入。vue

Vue可能有些方面是不如React,不如Angular,但它是渐进的,没有强主张,你能够在原有大系统的上面,把一两个组件改用它实现,当jQuery用;也能够整个用它全家桶开发,当Angular用;还能够用它的视图,搭配你本身设计的整个下层用。你能够在底层数据逻辑的地方用OO和设计模式的那套理念,也能够函数式,均可以,它只是个轻量视图而已,只作了本身该作的事,没有作不应作的事,仅此而已。
渐进式的含义,个人理解是:没有多作职责以外的事。java

  渐进式框架:Progressive,说明vue.js的轻量,是指一个前端项目可使用vue.js一两个特性也能够整个项目都用yue.js。
  自底向上逐层应用:做为渐进式框架要实现的目标就是方便项目增星开发。react

Vue.js与ECMAScript

Vue 不支持 IE8 及如下版本,由于 Vue 使用了 IE8 没法模拟的 ECMAScript 5 特性。

什么是ECMAScript?

ECMAScript(简称ES)是一种规范,咱们日常所说的Js/Javascript是ECMAScript的实现,早期主要应用的ES3,当前主流浏览器都支持ES五、ES6,ES8已于2017年发布。
 
 

什么是 Vue

MVVM 模式的实现者

  • Model:模型层,在这里表示 JavaScript 对象
  • View:视图层,在这里表示 DOM(HTML 操做的元素)
  • ViewModel:链接视图和数据的中间件,Vue.js 就是 MVVM 中的 ViewModel 层的实现者

  对于传统的js,咱们只有MV,js操做dom(view)直接赋值模型属性(model),咱们使用的ajax能够经过后台获取数据,而后就须要操做dom,进行数据的赋值,此时model和view就出现了耦合webpack

  而vue,添加了一个vm,将view和model进行隔离,vue.js充当了这个vm,vue.js使用本身的语法将model渲染到视图中;ios

 

在 MVVM 架构中,是不容许 数据 和 视图 直接通讯的,只能经过 ViewModel 来通讯,而 ViewModel 就是定义了一个 Observer 观察者web

  • ViewModel 可以观察到数据的变化,并对视图对应的内容进行更新
  • ViewModel 可以监听到视图的变化,并可以通知数据发生改变

至此,咱们就明白了,Vue.js 就是一个 MVVM 的实现者,他的核心就是实现了 DOM 监听 与 数据绑定ajax

Vue.js 的两大核心要素

数据驱动

 

 

当你把一个普通的 JavaScript 对象传给 Vue 实例的 data 选项,Vue 将遍历此对象全部的属性,并使用 Object.defineProperty 把这些属性所有转为 getter/setter。Object.defineProperty 是 ES5 中一个没法 shim 的特性,这也就是为何 Vue 不支持 IE8 以及更低版本浏览器。

这些 getter/setter 对用户来讲是不可见的,可是在内部它们让 Vue 追踪依赖,在属性被访问和修改时通知变化。这里须要注意的问题是浏览器控制台在打印数据对象时 getter/setter 的格式化并不一样,因此你可能须要安装 vue-devtools 来获取更加友好的检查接口。

每一个组件实例都有相应的 watcher 实例对象,它会在组件渲染的过程当中把属性记录为依赖,以后当依赖项的 setter 被调用时,会通知 watcher 从新计算,从而导致它关联的组件得以更新。

组件化

    • 页面上每一个独立的可交互的区域视为一个组件
    • 每一个组件对应一个工程目录,组件所需的各类资源在这个目录下就近维护
    • 页面不过是组件的容器,组件能够嵌套自由组合(复用)造成完整的页面

VUE的优势

结合了react 的优势,虚拟 DOM, 用于减小真实 DOM 操做,在内存中模拟 DOM 操做,有效的提高了前端渲染效率。

结合了Angular优势。模块化开发。

 

VUE.js使用

  • 1)在html页面使用script引入vue.js的库便可使用。
  • 2)使用Npm管理依赖,使用webpack打包工具对vue.js应用打包。大型应用推荐此方案。
  • 3)Vue-CLI脚手架,使用vue.js官方提供的CLI脚本架很方便去建立vue.js工程雏形。 

vue.js有哪些功能

  • 1)声明式渲染
  Vue.js 的核心是一个容许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统。好比:使用vue.js的插值表达式放在Dom的任意地方, 差值表达式的值将被渲染在Dom中。
  • 2)条件与循环
  dom中可使用vue.js提供的v-if、v-for等标签,方便对数据进行判断、循环。
  • 3)双向数据绑定
  <input v-model:value="name">
  Vue 提供v-model 指令,它能够轻松实现Dom元素和数据对象之间双向绑定,即修改Dom元素中的值自动修改绑
定的数据对象,修改数据对象的值自动修改Dom元素中的值。
  • 4)处理用户输入
  为了让用户和你的应用进行交互,咱们能够用 v-on 指令添加一个事件监听器,经过它调用在 Vue 实例中定义的
方法
  • 5)组件化应用构建
  vue.js能够定义一个一个的组件,在vue页面中引用组件,这个功能很是适合构建大型应用。 
相关文章
相关标签/搜索