Vue.js学习笔记

Vue.js学习笔记一:入门

前言https://seminelee.github.io/2016/08/18/vue-1/

  vue是法语中视图的意思,Vue.js是一个轻巧、高性能、可组件化的MVVM库。
  MV*可能大家都经常听说,我们先来理解一下MV*的概念。

出现的背景

  MVC开始是存在于桌面程序中的,但由于后端的mvc框架的v层越来越重,后端的MVC思想就搬移到了前端。随着前端代码越来越重,能力越来越大,重前端的系统越来越多地涌现出来。前端为主的MV*时代中,前端在MVC的结构指导下分为model(模型), view(视图), controller(控制器)三部分。而controller慢慢演化为presenter和viewmodel。MVC, MVP, MVVM框架不断涌现。

MVC, MVP, MVVM

  • MVC(model-view-controller),如backbone, angular(较高版本是mvvm, 也许说它是MVW更准确)。
      View: 与页面上元素直接相关的部分,包括html,CSS和一部分直接控制页面元素的JS。它可以从Model中得到数据,并将其显示到页面上。
      Model: 与后端的沟通、AJAX请求以及对数据的处理。Model本身不知道谁是View,谁是Controller。它只提供一些方法供View和Controller调用,并且将变更通知给它的观察者。
      Controller: Model和View的粘合剂。Controller将View方面的请求转发给合适的Model,作为Model的观察者,获取Model的变更,在必要时更新View。

  • MVP(model-view-presenter)使用此模型的框架不多,现在几乎倒向MVVM。MVP 模式将 Controller 改名为 Presenter,同时改变了通信方向。
      Presenter,与Controller一样,接收View的命令,对Model进行操作;与Controller不同的是Presenter会反作用于View,Model的变更通知首先被Presenter获得,然后Presenter再去更新View。

  • MVVM(model-view-viewmodel)如Vue.js。将Controller改为ViewModel。它与MVP的区别是,它采用双向绑定(data-binding):View的变动,自动反映在ViewModel。
      下图来自对MVC、MVP、MVVM的理解,清晰地说明它们之间的区别
    Vue.js学习笔记_第1张图片

Vue.js起步

简单介绍一下

  • 尤雨溪老师写的一个用于创建 web交互界面的库,是一个精简的MVVM,和其他库相比是一个小而美的库
  • 官方文档很清晰,比 Angular 简单易学
  • 采用双向绑定,用解耦的组件组合你的应用程序
    Vue.js学习笔记_第2张图片

  下图是vue.js官网上的双向绑定的小例子。首先是VM -> V,VM中的data里的message变化,会自动反映在V中的p标签里大括号内的message;V -> VM,V中input里输入的值,会自动反映到VM中的message值。所以,你在输入框中输入的文字会被实时显示成上方的文字。
Vue.js学习笔记_第3张图片

安装

  安装步骤vue.js官网上介绍得十分清楚。这里我推荐先安装淘宝镜像,再进行安装Vue.js官方命令行工具,这样会更快。

      
        
        
        
        
1
2
3
4
5
6
7
8
9
10
      
        
        
        
        
# 全局安装 cnpm淘宝镜像
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
# 全局安装 vue-cli
$ cnpm install -g vue-cli
# 创建一个基于 "webpack" 模板的新项目
$ vue init webpack my-project
# 安装依赖,走你
$ cd my-project
$ cnpm install
$ npm run dev

一些常用的指令

v-model

  用法:在表单控件(