07avalon - 监控数组与非监控属性

简介: 07avalon - 监控数组与非监控属性

监控数组

操作此数组的方法会同步视图的特殊数组,它是由VM中的数组自动转换而来。方便与ms-repeat, ms-each配合使用, 能批量同步一大堆DOM节点。

监控数组的方法与普通数组没什么不同,它只是被重写了某一部分方法,如 pop, shift, unshift, push, splice,sort, revert。其次添加了四个移除方法,remove, removeAt, removeAll, clear, 及ensure,pushArray,set方法。

  1. pushArray(el), 要求传入一数组,然后将它里面的元素全部添加到当前数组的末端。
  2. remove(el), 要求传入一元素,通过全等于比较进行移除。
  3. removeAt(index), 要求传入一数字,会移除对应位置的元素。
  4. removeAll(arrayOrFunction), 有三种用法,如果是一个函数,则过滤比较后得到真值的元素, 如果是一数组,则将此数组中与原数组相等于的元素全部移除;如果没有任何参数,则全部清空。
  5. clear(),相当于removeAll()的第三种方法,清空数组的所有元素。由于需要同步视图的缘故,不能通过vm.array.length = 0的方法来清空元素。
  6. ensure(el),只有当数组不存在此元素时,才添加此元素。
  7. set(index, el),用于更新某一索引位置中的元素,因为简单数组元素的数组,是不会转换它的元素。
  8. toJSON(), 用于取得数组的$model, 2.2.2新添加的方法
var vm = avalon.define({
   $id:'xxx',
   array: [1,2,3]
})
vm.array.push(4,5,6)
vm.array.pushArray([4,5,6])//这个比push方法好用
vm.array.clear()
vm.array.ensure(3) //[3]
vm.array.ensure(3) //[3]
vm.array.ensure(4) //[3,4]

注意,修改某个数组元素必须使用set方法. 如果是修改对象数组的某个元素的属性可以用 vm.array[1].prop = ‘newValue’

<body ms-controller="test">
    <div ms-for="el in @arr">
        {{el}}<button type="button" ms-click="@arr.remove(el)">点我删除该行</button>
    </div>
    <script>
    avalon.define({
        $id: 'test',
        arr: [1,2,3,4,5,6]
    })
    </script>
</body>

非监控属性

这包括框架添加的 $ id, $ events, $ model属性, $ fire, $ watch, $ render方法, 及用户自己设置的以 $ 开头的属性,放在$skipArray数组中的属性,值为函数、各种DOM节点的属性, 总之,改变它们的值不会产生同步视图的效果。

目录
相关文章
|
6月前
|
缓存 JavaScript
解释 Vue 的计算属性和监视属性的区别。
解释 Vue 的计算属性和监视属性的区别。
66 6
|
1月前
|
缓存 监控 JavaScript
|
5月前
|
存储 程序员 Swift
Swift开发——存储属性与计算属性
Swift推荐使用结构体进行开发,结构体支持属性和方法,且作为值类型。结构体属性包括存储属性(如radius)和计算属性(如r),计算属性不存储值,类似方法。结构体用`struct`定义,命名遵循大驼峰规则。实例名遵循小驼峰规则。属性可在结构体中任意位置定义,静态属性用`static`。存储属性可为`lazy`实现懒加载。结构体实例通过`.`访问属性和方法,静态属性和方法用`结构体名.`访问。计算属性可读写,可通过`get`和`set`定义。程序段1展示了结构体Point和Circle的属性和方法,包括私有属性、只读计算属性、可读写计算属性及`mutating`方法。
40 0
Swift开发——存储属性与计算属性
|
缓存 JavaScript
计算属性和侦听属性有什么区别?怎样选择
计算属性和侦听属性有什么区别?怎样选择
57 0
|
6月前
|
存储 安全 编译器
【Qt 底层之属性系统】Qt 属性系统全景:深入解析 Q_PROPERTY 宏的核心作用
【Qt 底层之属性系统】Qt 属性系统全景:深入解析 Q_PROPERTY 宏的核心作用
444 2
|
JavaScript 前端开发
计算属性和监视属性的区别
计算属性和监视属性的区别
|
缓存 JavaScript
04-Vue基础之计算属性与监视属性
04-Vue基础之计算属性与监视属性
74 0
ECharts分段型视觉映射组件的属性修改
ECharts分段型视觉映射组件的属性修改
61 0
|
SQL JSON 监控
探索 GreatADM:如何快速定义监控探索 GreatADM:如何快速定义监控
1、默认监控粒度不够,业务需要更细颗粒度的监控数据。 2、平台默认的监控命令不适合,需要调整阈值量身定制监控策略。 3、不同类型的实例或组件需要有不同的监控重点,但管理平台监控固化,难以应对多样化的监控需求。 4、只监控系统关键指标,屏蔽不必要的指标,优化 CPU 消耗、网络、采集数据量等,减少资源消耗,提升系统性能。
78 0
|
存储 缓存 Kubernetes
聊一聊K8s Operator在日志采集器中的应用
Kubernetes提供了自定义资源(Custom Resource)和K8s Operator为应用程序的部署提供扩展。本文调研了K8s Operator在各个日志采集器中的应用场景与架构。
628 0