child和tags都是[{id:1,value:'a'}]的格式,当点击一级标签,要看二级标签是否已经被选中,如果被选中,则清除出去 如果用for循环 再splice的话 当删除掉了一个元素后,数组的索引发生的变化,造成了程序的异常

所以要用while的方式

const arr = child.childList.map(item => item.id)
let i = this.tags.length
while (i--) {
if (arr.includes(this.tags[i].id)) {
this.tags.splice(i, 1)
}
}

上面的数组对象[{id:1,value:'a'}] 根据id去重

const id = 'id'
this.tags = this.tags.reduce((all, next) => all.some((atom) => atom[id] == next[id]) ? all : [...all, next], [])
数组去重 [1,2,3,4,2,3] 先转成没有重复的set 再转成数组
this.openLabels = Array.from(new Set(this.openLabels))
某个对象的数据渲染了dom,这时要在js里给这个对象添加一个它没有的属性,如果直接用点 elem.haveChecked = 1 这时因为这个属性不是本来就有的 vue没有给他生成getter setter 方法 所以dom的更新会没有或者慢了一秒半秒的,要用全局注册的方式:this.$set(elem, 'haveChecked', 1)
有时一个dom被删除 再被添上时 用this.$refs.stripOuter的方式 取高度 不能正常的取值 用this.$nextTick 也不行 这时 要用document.getElementsByClassName('checkHeader')[0]的方式
const headerHeight = document.getElementsByClassName('checkHeader')[0].clientHeight + 1
const stripHeight0 = document.getElementsByClassName('stripOuter')[0] ? document.getElementsByClassName('stripOuter')[0].clientHeight : 0
const stripHeight1 = document.getElementsByClassName('stripOuter')[1] ? document.getElementsByClassName('stripOuter')[1].clientHeight : 0
this.$refs.searchWrapper.style.maxHeight = headerHeight + stripHeight0 + stripHeight1 + 7 + 'px'
多层级的数组对象 的深拷贝方法。如果用[...arr] 的方式 只能深拷贝一层,再深的层 是浅拷贝,同理 Object.assign(target, source1, source2)也是,深拷贝可以用下面的方式:
this.quotaDataChange = [].concat(JSON.parse(JSON.stringify(this.quotaData)))
取父级页面或者兄弟页面的某个值可以用:
this.$parent   this.$children

最新文章

  1. k-nearest-neighbor算法
  2. 推荐一个C#代码混淆器 .NET Reactor【转】
  3. linux开关端口问题
  4. C puzzles详解【51-57题】
  5. Java框架----SSH整合回顾
  6. mybatis 报错:Caused by: java.lang.NumberFormatException: For input string
  7. jQuery实例—选项卡(js源码和jQuery)【一些常见方法(1)-练习】
  8. Python抓取淘宝IP地址数据
  9. js 获取浏览器内核
  10. combobox自己主动提示组件加入无选中项清空功能
  11. Asp.Net WebApi 调试利器“单元测试”
  12. redis的两种安装方法
  13. Android 开发第一项目——计算器的开发记录
  14. Spring注解方式配置Redis
  15. MySQL的聚集索引和非聚集索引
  16. Python面试数据库
  17. [C++]简单的udp通信
  18. HTTP协议实体的基本讲解
  19. Linux下性能监控的三把军刀
  20. 轻量ORM-SqlRepoEx (九)与Dapper共舞

热门文章

  1. pre-empting taskintel手册-Chapter7-Task Management
  2. code Gym 100500D T-shirts(暴力)
  3. UVA 810 A Dicey Promblem 筛子难题 (暴力BFS+状态处理)
  4. Predicate Programming Guide
  5. VC-基础:vs2010快捷键
  6. Bootstrap标签页(Tab)插件
  7. 你对CommonJS规范了解多少?
  8. 【转】C++后台开发应该读的书
  9. [vijos]P1514 天才的记忆
  10. CF-1013 (2019/02/09 补)