美文网首页
Vue关于option一些理解

Vue关于option一些理解

作者: 郑馋师 | 来源:发表于2020-02-03 17:51 被阅读0次

    说在之前的话

    1. 一般来说,我们会选择
    const vm=new Vue(options)
    

    来包装vue,原因是因为这是Vue作者习惯我们会沿用。

    1. vm主要是封装了视图操作,包括有
    • 数据读写(vm不管AJAX)
    • 事件绑定
    • DOM更新
    1. vm构造函数是Vue,所属类也是Vue
    2. options是vue参数,意思是选项/构造选项

    options

    包括以下大类

    1. 数据

    类型:Object | Function

    限制:组件的定义只接受 function。

    详细:

    Vue 实例的数据对象。Vue 将会递归将 data 的属性转换为** getter/setter**,从而让 data 的属性能够响应数据变化。对象必须是纯粹的对象 (含有零个或多个的 key/value 对):浏览器 API 创建的原生对象,原型上的属性会被忽略。大概来说,data 应该只能是数据 - 不推荐观察拥有状态行为的对象。

    一旦观察过,你就无法在根数据对象上添加响应式属性。因此推荐在创建实例之前,就声明所有的根级响应式属性。

    实例创建之后,可以通过 vm.data 访问原始数据对象。Vue 实例也代理了 data 对象上所有的属性,因此访问 vm.a 等价于访问 vm.data.a。

    以** _ 或 开头的属性 不会 被 Vue 实例代理**,因为它们可能和 Vue 内置的属性、API 方法冲突。你可以使用例如 vm.data._property 的方式访问这些属性。个人理解是这些是为了避免和api重名才加的

    当一个组件被定义,data 必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例。如果 data 仍然是一个纯粹的对象,则所有的实例将共享引用同一个数据对象!通过提供 data 函数,每次创建一个新实例后,我们能够调用 data 函数,从而返回初始数据的一个全新副本数据对象。

    如果需要,可以通过将 vm.$data 传入 JSON.parse(JSON.stringify(...)) 得到深拷贝的原始数据对象。

    如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。等下另外找一篇文章讲清楚。

    类型

    多种类型
    类型分类

    生命周期钩子

    钩子是可插入的点
    生命周期如图


    生命周期

    el和data

    el也就是挂载点,可以让

    vue的7个异变api

    • pop()
    • shift()
    • unshift()
    • splice()
    • sort()
    • reverse()
    • push()

    这些负责了他的增删,使其可以监听到所有的对象,不用额外在监听

    相关文章

      网友评论

          本文标题:Vue关于option一些理解

          本文链接:https://www.haomeiwen.com/subject/enkhxhtx.html