Vue

# Vue

# 什么是Vue.js

  • Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于Weex(但用weex的很少,可以去官网看看有哪些企业用到WEEX (opens new window) ,react用的比较多)
  • Vue.js 是前端的主流框架之一,和Angular.js、React.js 一起,并成为前端三大主流框架!
  • Vue.js 是一套构建用户界面的框架,只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。(Vue有配套的第三方类库,可以整合起来做大型项目的开发)
  • 前端的主要工作?主要负责MVC中的V这一层;主要工作就是和界面打交道,来制作前端页面效果;

为什么要学习流行框架

  • 企业为了提高开发效率:在企业中,时间就是效率,效率就是金钱;企业中,使用框架,能够提高开发的效率;
  • 提高开发效率的发展历程:原生JS -> Jquery之类的类库 -> 前端模板引擎(频繁操作DOM) -> Angular.js / Vue.js(能够帮助我们减少不必要的DOM操作;提高渲染效率;双向数据绑定的概念【通过框架提供的指令,我们前端程序员只需要关心数据的业务逻辑,不再关心DOM是如何渲染的了】)
  • 在Vue中,一个核心的概念,就是让程序员不再操作DOM元素,解放了程序员的双手,让程序员可以更多的时间去关注业务逻辑;

前端模板引擎都做了什么?例如一个对象数组,显示为表格,当你点击id列排序时,模板引擎会将全部数据渲染;实际上,第一行和第四行是不用渲染的。如果是1000行,消耗更大。渲染涉及到浏览器的重绘、重排,消耗性能

image.png

为什么要使用模版引擎

  • 前端模版引擎和前端框架不一样
  • 缓存模板结构,在数据层操作完直接套用模板输出到客户端界面中
  • 减少 dom 操作的异常、减少拼接 html 的痛苦、减少各浏览器下 dom 操作的延迟差异

严格的模板引擎的定义,输入 模板字符串 + 数据,得到渲染过的字符串(即HTML代码)。

# 框架和库的区别

  • 框架:是一套完整的解决方案;对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。node 中的 express;

  • 库(插件):提供某一个小功能,对项目的侵入性较小,如果某个库无法完成某些需求,可以很容易切换到其它库实现需求。

    • 从Jquery 切换到 Zepto
    • 从 EJS 切换到 art-template (语法类似)

# Node(后端)中的 MVC 与 前端中的 MVVM 之间的区别

  • MVC 是后端的分层开发概念;
  • MVVM是前端视图层的概念,主要关注于 视图层分离,也就是说:MVVM把前端的视图层,分为了 三部分 Model, View , VM ViewModel
  • 为什么有了MVC还要有MVVM

# Vue.js 基本代码 和 MVVM 之间的对应关系

image.png

MVVM: M,例如数组 MV:控制M和V V:HTML