vue从入门到女装??:从零开始搭建后台管理系统(一)vue介绍

727 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

准备工作

  • 一定的前端基础
    • html 👻
    • css 💯
    • javascript 🙌
  • 开发环境和编辑器
    • 推荐node开发环境
    • 编辑器:webstorm、vscode等......

img

vue特点

Vue 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

MVVM模型

  • MVC(Model-View-Controller):
    • 接受用户指令时,MVmdC 可以分成两种方式。一种是通过 View 接受指令,传递给 Controller。
    • 另一种是直接通过controller接受指令。

img

  • MVP(Model-View-Presenter): MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。
    • 各部分之间的通信,都是双向的。

    • View 与 Model 不发生联系,都通过 Presenter 传递。

    • View 非常薄,不部署任何业务逻辑,称为"被动视图"(Passive View),即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。


img

  • MVVM(Model-View-ViewModel): MVVM 模式将 Presenter 改名为 ViewModel,基本上与 MVP 模式完全一致。 唯一的区别是,它采用双向绑定(data-binding):View的变动,自动反映在 ViewModel,反之亦然。Angular 和 Ember 都采用这种模式。

img

单页面应用

一个单页的应用程序(Single-page application)是一个Web应用程序或网站,通过动态地重写当前页面而不是从服务器加载整个新的网页与用户交互。

  • Angular

  • vue

  • Ember.js

  • Meteor.js

  • ExtJS

  • React

  • 优点:

    • 具有桌面应用的即时性、网站的可移植性和可访问性。
    • 用户体验好、快,内容的改变不需要重新加载整个页面,web应用更具响应性和更令人着迷。
    • 基于上面一点,SPA相对对服务器压力小。
    • 良好的前后端分离。SPA和RESTful架构一起使用,后端不再负责模板渲染、输出页面工作,web前端和各种移动终端地位对等,后端API通用化。
  • 缺点:

    • 分功能模块的鉴权不好实现。
    • 不利于SEO,现在可以通过Prerender等技术解决一部分。
    • 初次加载耗时相对增多。
    • 前进、后退、地址栏等,需要程序进行管理。

双向数据绑定

比如你改变一个输入框 Input 标签的值,会自动同步更新到页面上其他绑定该输入框的组件的值

img

和其他框架的对比

react

  • 相同点:
    • React采用特殊的JSX语法,Vue.js在组件开发中也推崇编写.vue特殊文件格式,对文件内容都有一些约定,两者都需要编译后使用。
    • 中心思想相同:一切都是组件,组件实例之间可以嵌套。
    • 都提供合理的钩子函数,可以让开发者定制化地去处理需求。
    • 都不内置列数AJAX,Route等功能到核心包,而是以插件的方式加载。在组件开发中都支持mixins的特性。
  • 不同点:
    • React依赖Virtual DOM,而Vue.js使用的是DOM模板。React采用的Virtual DOM会对渲染出来的结果做脏检查。
    • Vue.js在模板中提供了指令,过滤器等,可以非常方便,快捷地操作DOM。

angular

  • 相同点:
    • 都支持指令:内置指令和自定义指令。
    • 都支持过滤器:内置过滤器和自定义过滤器。
    • 都支持双向数据绑定。
    • 都不支持低端浏览器。
  • 不同点:
    • AngularJS的学习成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比较简单、直观。
    • 在性能上,AngularJS依赖对数据做脏检查,所以Watcher越多越慢。Vue.js使用基于依赖追踪的观察并且使用异步队列更新。所有的数据都是独立触发的。对于庞大的应用来说,这个优化差异还是比较明显的。