初识Vue

    xiaoxiao2022-07-07  234

    初识Vue

    什么是框架?什么是库?

    框架是有一套自己的生态系统的

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

    Vue.js是什么

    Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。

    另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

    既然Vue是一个框架,那么它使用了什么架构模式?

    Vue使用的是MVVM架构思维是MVC的衍生模式

    什么是MVC架构?

    MVC 即 Model-View-Controller 的缩写,就是 模型-视图-控制器 , 也就是说一个标准的Web 应用程序是由这三部分组成的:

    Model 其实就是数据。

    View 用来把数据以某种方式呈现给用户。

    Controller 接收并处理来自用户的请求,并将 Model 返回给用户。

    MVVM:

    M: Model 表示数据。

    V: View 表示视图。

    VM: ViewModel 视图模型 同步 View 和 Model。

    在Vue中 VM改变,那么 V也会改变 , 反之也是一样的, 我们称之为 '双向数据绑定’也就是Vue 最独特的特性之一,是其非侵入性的响应式系统。

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

    当你把一个普通的 JavaScript 对象传入 Vue 实例作为 data 选项,Vue 将遍历此对象所有的属性,并使用 Object.defineProperty 把这些属性全部转为 getter/setter。

    这些 getter/setter 对用户来说是不可见的,但是在内部它们让 Vue 能够追踪依赖,在属性被访问和修改时通知变更。

    每个组件实例都对应一个 watcher 实例,它会在组件渲染的过程中把“接触”过的数据属性记录为依赖。之后当依赖项的 setter 触发时,会通知 watcher,从而使它关联的组件重新渲染。

    Object.defineProperty:

    Object.defineProperty

    语法 Object.defineProperty(obj, prop, descriptor) 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性, 并返回这个对象。

    属性描述符

    对象里目前存在的属性描述符有两种主要形式:数据描述符和存取描述符。数据描述符是一个具有值的属性,该值可能是可写的,也可能不是可写的。存取描述符是由getter-setter函数对描述的属性。描述符必须是这两种形式之一;不能同时是两者。

    get

    一个给属性提供 getter 的方法,如果没有 getter 则为 undefined。当访问该属性时,该方法会被执行,方法执行时没有参数传入,但是会传入this对象(由于继承关系,这里的this并不一定是定义该属性的对象)。

    默认为 undefined。

    set

    一个给属性提供 setter 的方法,如果没有 setter 则为 undefined。当属性值修改时,触发执行该方法。该方法将接受唯一参数,即该属性新的参数值。

    默认为 undefined。

    Vue 初学

    引入Vue.js

    直接下载并用 <script>标签引入,Vue 会被注册为一 个全局变量。

    CDN: <script src="https://cdn.jsdelivr.net/npm/vue"></script>

    NPM: 在用 Vue 构建大型应用时推荐使用 NPM 安装[1]。NPM 能很好地和诸如 webpack 或 Browserify 模块打包器配合使用。同时 Vue 也提供配套工具来开发单文件组件。 $ npm install vue

    创建一个 Vue 实例 实例化全局暴露的变量Vue构造器函数得到一个实例

    var vm = new Vue({ // 选项 })

    配置Vue构造器函数中的配置项,一个配置项一个功能

    el – 将id为box的一部分DOM结构当做模板传入配置项,然后挂载在页面中data – 用来定义数据的 var vm = new Vue({ el: '#box', // 将id为app的一部分DOM结构当做模板传入配置项,然后挂载在页面中 data: { msg: 'hello Vue.js' } })

    将数据展示在视图中,通过使用 双大括号语法 ( mustache 语法 ) 来展示数据

    这时候我们发现在我们的模板(DOM结构)中可以使用 javascript语法,那么我们把这个类型称之为 ‘jsx语法糖’

    当我们将数据修改后发现,视图就会更新,这种情况我们称之为‘数据驱动(视图)’

    <div id="box"> <p> {{ this.$data.msg }} </p> <p> {{ this._data.msg }} </p> <p> {{ this.msg }} </p> <p> {{ msg }} </p>
    最新回复(0)