1.前端框架的发展历史 前端工程师(攻城狮) 12.html css jquery 13.js加入 & jquery 14.MVC angular1.0 react 15.vue 微信小程序
框架是有一套自己的生态系统 库是没有自己的生态系统的,他就是一个工具
使用script标签引入Vue.js 实例化全局暴露的变量和vue构造器函数得到一个实例 配置Vue构造器函数中的配置项,一个配置项一个功能 el:将id为app的一部分DOM结构当做模板传入配置项,然后挂载在页面中 data:用来定义数据的 将数据展示在视图中,通过使用双大括号(mustache语法)来展示数据 这时候我们发现在我们的模板(DOM结构)中可以使用js语法,那我们把这个称为jsx语法糖 当我们将数据修改后发现,视图就会更新,这种情况我们称之为‘数据驱动’(视图)
目前我们市面上基本上是以MVC这个架构思维为主 VUE使用了MVC的衍生的模式,这个模式叫做MVVM MVC Backbone.js Mvp Mvvm
M :Model表示数据 V:view表示视图 P/C/VM: Presenter/Controller/ViewModel(视图模型) 表示就是逻辑
VUE中,VM逻辑改变,那么V视图也会改变,繁殖也是一样,我们称之为“双向数据绑定”
当我们将数据写在data选项时,VUE会通过observer将data对象中的所有属性都设置上getter和setter 当我们将数据绑定在视图时,自动触发GETTER,会将默认值展示在视图 当我们通过视图修改数据时,会自动触发setter,将数据修改,同时视图也会发生更新。
匿名函数+严格模式 1.没有名字,那么无法再外部通过函数名使用或是操作这个函数,那么相对来说比较稳定,安全 2.严格模式使用,让这个匿名函数的语法更加标准和严格 格式:
(function(形参1,形参2){ }}) (实参1,实参2)第一个括号是用来定义匿名函数,第二个括号是用来运行这个匿名函数
代码中三行代码的含义: 第一行:不导出Obiect,也不到处undefined 第二行:如果我们想模块化引用Vue,那么我们将要通过amd将Vue函数定义为模块 第三行:如果我们想将Vue作为全局变量使用,那么我们将Vue挂在window对象身上
数据绑定,双向数据绑定,深入响应式的原理 V-VM VM-V(逻辑到视图的切换) 这个是使用了es5中的一个特性,这个特性叫做Object.definedPropty(obj,对象的属性,配置项) 配置项:1.属性是否可写 2.属性是否可以遍历 3.存储器 get函数和set函数 ==>也称之为getter&&setter 数据驱动只和存储器有关
var box = document.queryselector('.box'); var input=document.queryselector('input); var obj={ a:'I LOVE YOU' }; Object.defineProperty(obj,'a',{ get(){ return 'I do not loveyou' } set(value){ box.innerHTML=value; } ) input.onchange=function(){ obj.a=input.value; return; } box.innerHTML=obj.a ```