23年9月-11月工作笔记整理(前端)

一、小Tips

1.this.refs获取不到的话,就使用this.$nextTick(()=>{})
2.提交代码的时候执行git commit–no-verift - m “提交备注”,就可以跳过代码检查
3.window.open()新打开页面跳转遇到权限问题为单独打开可以,通过这个方法打开不行
解决办法:<meta name = "referrer" content="no-referrer"/>
4.监听chart对象进行自适应缩放

//通过ResizeObserver监听chart的dom节点变化后调用缩放方法
   observerDom(chart) {
      new ResizeObserver(() => {
        chart.resize()
      }).observe(chart._dom)
    },

5.列表全选、半选、全不选的逻辑

<div>
          <div v-for="item in operaList" :key="item.name">
            <el-checkbox
              v-model="item.checked"
              @change="handleCheckedChange"
            ></el-checkbox>
            {{ item.name }}
          </div>
          <el-checkbox
            :indeterminate="isIndeterminate"
            v-model="checkAll"
            @change="handleCheckAllChange"
          ></el-checkbox
          >全选
     </div>
data(){
return{
   //选中列表
      checkedList: [],
      //半选
      isIndeterminate: false,
      //全选
      checkAll: false,
      //地块列表操作
      operaList: [
        { name: '地块1', checked: false },
        { name: '地块2', checked: false },
        { name: '地块3', checked: false },
        { name: '地块4', checked: false }
      ],
   }
}
methods:{
//列表选择
    handleCheckedChange() {
      let isAll = true
      //统计没被选的数量
      let count = 0
      this.operaList.forEach(item => {
        if (!item.checked) {
          isAll = false
          count++
        }
      })
      if (isAll) {
        //全选
        this.checkAll = true
        this.isIndeterminate = false
      } else if (count === this.operaList.length) {
        //全不选
        this.checkAll = false
        this.isIndeterminate = false
      } else {
        //半选
        this.checkAll = false
        this.isIndeterminate = true
      }
    },
    //地块列表全选
    handleCheckAllChange() {
      if (this.checkAll) {
        //全选
        this.operaList.forEach(item => {
          this.$set(item, 'checked', true)
        })
      } else {
        //全不选
        this.operaList.forEach(item => {
          this.$set(item, 'checked', false)
        })
      }
      this.isIndeterminate = false
    },
}

6.node-sass 替换为 sass
卸载 node-sass:npm uninstall node-sass
安装 sass:npm install sass --save-dev
全局搜索替换:/deep/ 替换为 ::v-deep
7.css选择前i个元素:nth-child(-n + i)、后i个元素:nth-child(n + i)
8.局部禁用eslint检查
禁用下一行/* eslint-disable-next-line*/
禁用整个文件 /* eslint-disable*/

二、原理学习

1.虚拟滚动原理
https://blog.csdn.net/superherooooss/article/details/128866887
2.当需要分列排版的时候,可以使用 columns属性,接收列数和宽度

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值