前端框架的发展历史 和vue简介

1. 前端框架的发展历史

前端工程师( 攻城狮 )
12. html css + div
13. js 加入 jquery
14. MVC angular1.0 react
16. vue 微信小程序

2. Vue.js第一次使用

  1. 什么是框架?什么是库
  • 框架是有一套自己的生态系统的
    库是没有自己的生态系统的, 它就是一个工具
  1. 查看vue.js的源代码
  2. 暂时学习使用的是 全局变量 形式
  3. jsx( javascript + xml )
  4. 总结vue.js第一次使用
  • 使用script标签引入Vue.js
  • 实例化全局暴露的变量Vue构造器函数得到一个实例
  • 配置Vue构造器函数中的配置项,一个配置项一个功能
  • el – 将id为app的一部分DOM结构当做模板传入配置项,然后挂载在页面中
  • data – 用来定义数据的
  • 将数据展示在视图中,通过使用 双大括号语法 ( mustache 语法 ) 来展示数据
  • 这时候我们发现在我们的模板(DOM结构)中可以使用 javascript语法,那么我们把这个类型称之为 ‘jsx语法糖’
  • 当我们将数据修改后发现,视图就会更新,这种情况我们称之为‘数据驱动(视图)’
  1. 既然Vue是一个框架, 那么它使用了什么架构模式?
  • 目前我们市面上基本上是以 MVC 这个架构思维 为主
  • Vue使用 MVC 的衍生的模式,这个模式叫做 MVVM
    • MVC
    • Backbone.js
    • MVP
    • MVVM
  • 名词解释:
    • M Model 表示数据
    • V View 表示视图
    • P/C/VM Presenter/Controller/ViewModel(视图模型) 表示就是逻辑
  • Vue使用的是MVVM
    • M options中的 data 选项
    • V el
    • VM ViewModel 视图模型 vm
  • Vue中 VM改变,那么 V也会改变 , 反之也是一样的, 我们称之为 ‘双向数据绑定’
  • 数据驱动/ 双向数据绑定的原理 / 深入响应式的原理
    当我们将数据写在data选项时, Vue会通过observer将data对象中的所有的属性都设置上getter和setter
    当我们将数据绑定在视图时,自动触发getter,会将默认值,展示在视图
    当我们通过视图修改数据是, 会自动触发setter,将数据修改,同时视图也会发生更新
  • V -> VM
  • VM -> V
    这个是使用了es5中的一个特性,这个特性叫做 Object.definedPropty( obj, 对象的属性, 配置项)
  • Object.definedPropty
  • 配置项:
    1. 属性是否可写
    2. 属性是否可以遍历
    3. 存储器
  • get 函数 和 set 函数 也称之为 getter && setter
    数据 驱动只和存储器有关系

3.封装库

  1. 匿名函数 + 严格模式
  2. 没有名字,那么无法在外部通过函数名使用或是操作这个函数,那么相对而言比较稳定/安全
  3. 严格模式使用,让这个匿名函数的语法更加的标准和严格
  4. 格式:
    (function(形参1,形参2 …){})(实参1,实参2 …)
    第一个括号用来定义匿名函数,第二个括号用来运行这个匿名函数
  5. use strict下面的三行代码:
    第一行:不导出object,也不导出undefined
    第二行:如果我们想模块化引用Vue,那么我们要通过amd将Vue函数定义为模块
    第三行:如果我们想将Vue作为全局变量使用,那么我们将Vue挂载在window身上
( function ( global,factory) { 'use strict'; typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.Vue = factory()); })( this,function(){ function Zyz (){ } //原型 Zyz.prototype.init = function(){ console.log('zyz') } return Zyz } )

猜你喜欢

转载自www.cnblogs.com/zhaoyingzi/p/10910865.html
今日推荐