0
点赞
收藏
分享

微信扫一扫

每日学习冲冲冲

寒羽鹿 2022-04-02 阅读 71

1读代码
2封装组件时样式要注意的地方
3响应式布局 方式 
4懒加载与虚拟列表

懒加载:这个就是常见的无线滚动的,每次只渲染一部分(比如10条),等剩余部分滚到可见区域,就再渲染一部分,原理同图片懒加载  图片懒加载
5深拷贝 代码能拷贝方法
  

  function deeCopy(obj){
          //首页判读拷贝的是对象还是数组
        const target=obj.constructor===Array ? [] : {}
         // for in 循环中 item为字符串 obj['0']或者 obj['a']
        for(item in obj){
            if(obj.hasOwnProperty(item)){
                if(obj[item] && typeof obj[item]==='object'){
                //解析性代码
                    target[item]=obj.constructor==='Array' ? []:{}
                  //递归
                    target[item]=deeCopy(obj[item])
                }
                else{

                    target[item]=obj[item]

                }
            }
        }
        return target
    }


6class内绑定对象、数组 

v-bind可以绑定方法 属性 对象

样式m和n
:clase="{'a':true,'b':false}"
:class="obj"
obj={'a':true,'b':false //不渲染}
绑定数组
:class=[classA,classB]
data(return{
classA:n,
classB:m
})


场景 控制样式为a或者b
  data中无法访问data中的其他数据 

比如 无法访问到methods中的方法  初始顺序props> data>methods>computed>watched
    data:{
            return{
             flag:1,
        c:this.flag? 'a':'b'  //无法访问到  一直为undefine 一直为false  但作为组件可以读取props中数据
                      }
    },

:class="c"或者:class="`${flag}`? 'a':'b' " 或者:class="{${flag}?'a':'b'}"  失败 所以还是用点击事件的方式通过标记或者computed或者watch的方法
 


7  a||b  a??b

相当于 a? a:b  当a为 null, 0, undefine,'', NaN, 时为false,其他和 ' ' 时 为true 

'' 和 ' '不同

同于 if(a) 

let a=2+true

let b='b'

a||b => 3

使用场景: a|| [ ] 当数据还未返回时,赋值为[ ]

a?? b 相反于 (a !== undefined && a !== null) ? a : b 

举报

相关推荐

0 条评论