vue中data的使用方法computed

522 阅读1分钟

data是响应式的

  • Vue 实例的数据对象。Vue 会递归地把 data 的 property 转换为 getter/setter,从而让 data 的 property 能够响应数据变化。
  • 对象必须是纯粹的对象 (含有零个或多个的 key/value 对)
    • 下面return是一个大对象,里面有key、value
  • 大概来讲,data 应该只能是数据 - 不推荐观察拥有状态行为的对象。
data() {
    return {
	shownDatas: [], // 接口返回数据
	isLoading: false, //是否正在加载中
	startTime: "",
	endTime: "",
	form: {
	  startTime: getTime('今天').startTime,
	  endTime: getTime('今天').endTime,
	 searchValue: '',
		},
	queryData: {
		timeLabel: '',
		pageLabel: '',
		}
		 };
  • 实例创建之后,可以通过vm.$data访问原始数据对象;
  • vue也代理了data对象上所有的属性property,因此vm.a等价于访问vm.$data.a
  • 以 _ 或 $ 开头的 property 不会被 Vue 实例代理,因为它们可能和 Vue 内置的 property、API 方法冲突。你可以使用例如 vm.$data._property 的方式访问这些 property。

如何追踪变化的

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

今天的重点computed是响应式的。

  • 当你有一些数据须要随着其它数据变更而变更时,一般更好的作法是使用计算属性而不是命令式的 watch 回调。
  • .computed属性,属于持续变化跟踪。在computed属性定义的时候,这个computed属性就与给它赋值的变量绑定了。改变这个赋值变量,computed属性值会随之改变。