初识vue

    xiaoxiao2022-07-07  199

    1. 前端框架的发展历史

    前端工程师( 攻城狮 ) 12年出现html css + div,12年以前都是表格 13年js 加入前端, jquery出现 14年根据MVC模式angular1.0出现 , react也出现 15年react很火, 16年vue 微信小程序大火

    2. Vue.js第一次使用

    什么是框架?什么是库

    框架是有一套自己的生态系统的 库是没有自己的生态系统的, 它就是一个工具

    查看vue.js的源代码很有帮助

    暂时学习使用的是 全局变量 形式

    html页面格式是jsx( javascript + xml )

    总结下vue.js第一次使用

    使用script标签引入Vue.js实例化全局暴露的变量Vue构造器函数得到一个实例配置Vue构造器函数中的配置项,一个配置项一个功能 el – 将id为app的一部分DOM结构当做模板传入配置项,然后挂载在页面中data – 用来定义数据的 将数据展示在视图中,通过使用 双大括号语法 ( mustache 语法 ) 来展示数据这时候我们发现在我们的模板(DOM结构)中可以使用 javascript语法,那么我们把这个类型称之为 ‘jsx语法糖’当我们将数据修改后发现,视图就会更新,这种情况我们称之为‘数据驱动(视图)’ 既然Vue是一个框架, 那么它使用了什么架构模式?

    目前我们市面上基本上是以 MVC 这个架构思维 为主

    Vue使用 MVC 的衍生的模式,这个模式叫做 MVVM

    MVC

    Backbone.js

    MVP

    MVVM

    名词解释:

    M Model 表示数据V View 表示视图P/C/VM Presenter/Controller/ViewModel(视图模型) 表示就是逻辑

    Vue使用的是MVVM

    Vue中 VM改变,那么 V也会改变 , 反之也是一样的, 我们称之为 ‘双向数据绑定’

    数据驱动/ 双向数据绑定的原理 / 深入响应式的原理

    当我们将数据写在data选项时, Vue会通过observer将data对象中的所有的属性都设置上getter和setter

    当我们将数据绑定在视图时,自动触发getter,会将默认值,展示在视图 当我们通过视图修改数据是, 会自动触发setter,将数据修改,同时视图也会发生更新 代码如下

    <body> <input type="text"> <div class="box"></div> </body> <script> /* - 数据驱动/ 双向数据绑定的原理 / 深入响应式的原理 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 </script>

    ###vue的基本使用

    <body> <div id="app"> <p> {{ this.$data.msg }} </p> <p> {{ this._data.msg }} </p> <p> {{ this.msg }} </p> <p> {{ msg }} </p> </div> </body> <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封装库

    /* 匿名函数 + 严格模式 1. 没有名字,那么无法再外部通过函数名使用或是操作这个函数,那么相对来说比较稳定,安全 2. 严格模式使用,让这个匿名函数的语法更加的标准和严格 格式 ( function ( 形参1 , 形参2 ...) {})( 实参1, 实参2 ...) 第一个括号是用来定义匿名函数,第二个括号是用来运行这个匿名函数 三个代码: 第一行: 不导出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 Aab () { } // 原型 Yyb.prototype.init = function() { console.log( 'aab' ) } return Aab })
    最新回复(0)