前端工程师( 攻城狮 ) 12年左右 html css + div 13年左右 js 加入 jquery 14年左右 MVC angular1.0 react 15年 vue研发 16年左右 vue 微信小程序
框架是有一套自己的生态系统的 库是没有自己的生态系统的, 它就是一个工具
查看vue.js的源代码
暂时学习使用的是 全局变量 形式
jsx( javascript + xml )
总结vue.js第一次使用
使用script标签引入Vue.js实例化全局暴露的变量Vue构造器函数得到一个实例配置Vue构造器函数中的配置项,一个配置项一个功能 el – 将id为app的一部分DOM结构当做模板传入配置项,然后挂载在页面中data – 用来定义数据的 将数据展示在视图中,通过使用 双大括号语法 ( mustache 语法 ) 来展示数据这时候我们发现在我们的模板(DOM结构)中可以使用 javascript语法,那么我们把这个类型称之为 ‘jsx语法糖’当我们将数据修改后发现,视图就会更新,这种情况我们称之为‘数据驱动(视图)’ <script src="vue.js"></script> <script> // console.log( Vue ) function Vue( options ) {} /* 学习的是 Vue构造函数中的options 和 vm身上的属性和方法 */ var vm = new Vue({ el: '#app', // 将id为app的一部分DOM结构当做模板传入配置项,然后挂载在页面中 data: { msg: 'hello Vue.js' } }) console.log(vm) </script> 既然Vue是一个框架, 那么它使用了什么架构模式? 目前我们市面上基本上是以 MVC 这个架构思维 为主Vue使用 MVC 的衍生的模式,这个模式叫做 MVVMMVCBackbone.jsMVPMVVM 名词解释: M Model 表示数据V View 表示视图P/C/VM Presenter/Controller/ViewModel(视图模型) 表示就是逻辑Vue使用的是MVVM
Vue中 VM改变,那么 V也会改变 , 反之也是一样的, 我们称之为 ‘双向数据绑定’
双向数据绑定原理 V -> VM
VM -> V
-这个是使用了es5中的一个特性,这个特性叫做 Object.definedPropty( obj, 对象的属性, 配置项)
Object.definedPropty 配置项: 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 love you ' //设置当前属性的初始值 }, set ( value ) { console.log( value ) box.innerHTML = value console.log( obj ) } }) input.onchange = function () { obj.a = input.value return ; } box.innerHTML = obj.a