美文网首页
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