vue---减少操作dom,一步步养成好习惯

最近在做人脸识别会议签到的项目,签到过程描述如下:

签到前人脸图像上方增加了一层“遮罩”,为暗色;签到后点亮头像,为外层div添加样式class="signend"即可去掉“遮罩”层。

     <div class="people" id="peopleList" @scroll="scroll" ref="peopleList">
        <div v-for="(item,index) in peopleList" :key="index" :id="item.employee_id" :class="{'nums_10':peopleListLength>48">
          <img :src="'/static/thumbnails/'+item.image_path">
          <p>{{item.name}}</p>
          <div class="cover">
            <i class="iconfont" v-if="item.isAbsent">&#xe670;</i>
          </div>
        </div>
      </div>

在完成上述过程,一开始,总是想着操作dom,如下

 // 改变外层div的class
  if (this.signed > 1) {
      var aDiv = document.getElementById('peopleList').childNodes
      aDiv[this.signed - 1].className = "signend"
  }

后面发现直接加一个标志【item.isAttend = true     // true 已到场 | false 未到场】,根据标志直接在div标签中写入样式 【'signend':item.isAttend】,就不用操作dom了。

  <div class="people" id="peopleList" @scroll="scroll" ref="peopleList">
        <div v-for="(item,index) in peopleList" :key="index" :id="item.employee_id" :class="{'nums_10':peopleListLength>48,'signend':item.isAttend}">
          <img :src="'/static/thumbnails/'+item.image_path">
          <p>{{item.name}}</p>
          <div class="cover">
            <i class="iconfont" v-if="item.isAbsent">&#xe670;</i>
          </div>
        </div>
      </div>

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值