study-every-day icon indicating copy to clipboard operation
study-every-day copied to clipboard

【每日计划】 2022-02-13

Open cuixiaorui opened this issue 3 years ago • 8 comments

每日计划模板

读书

  • [ ] 《CSS 新世界》
  • [ ] 红宝书
  • [ ] 阅读两篇技术文章

编码练习

  • [ ] mini-vue
  • [ ] 练习 TypeScript

(该模板使用ch3cknull/auto-issue-comment自动生成)

ch3cknull avatar Feb 13 '22 01:02 ch3cknull

每日计划

学习计划

  • [ ] leetcode 两道
  • [ ] 项目整理
  • [ ] 面试学习

fatFire avatar Feb 13 '22 02:02 fatFire

学习

  • [ ] 看 vue3 文档
  • [ ] 学习 webpack5 进阶
  • [x] 回顾 array 的一些方法

工作

  • [ ] xxxxx

日常

  • [ ] 每日护肤
  • [ ] 11:30 睡觉
  • [ ] 7:30 起床
  • [ ] 半小时看书
  • [ ] 午睡半小时

nextTick 原理?

nextTick 的原理就是它会维护一个更新数据改变视图操作的队列,他不会说是你一变化他就立即更新的,而是等待同一事件环中的所有数据变化完成后再执行更新,而我们传递给 nextTick 的那个回调则会在这个队列的最后被执行,所以它其实是时一种优化策略,减少性能的损耗。

Array.from:将两类对象转为真正的数组 --> 类数组对象和可遍历的对象(Map,Set)。并且它还接收第二个参数用来对每个值进行处理,将返回值放入新的数组中

Array.of:用于将一组值转为数组

  • 没有参数传入则返回一个空数组
  • 有一个参数,则该参数是新数组的长度
  • 参数不少于2个,才会将传入的所有参数放入到一个新的数组中

BFC:块级格式化上下文

BFC目的是形成一个相对于外界完全独立的空间,让内部的子元素不会影响到外部的元素

BFC 的渲染规则

  • 内部的盒子会在垂直方向上一个接一个的放置
  • 对于同一个 BFC 的俩个相邻的盒子的 margin 会发生重叠,与方向无关
  • 每个元素的左外边距与包含块的左边界相接触(从左到右),即使浮动元素也是如此
  • BFC 的区域不会与 float 的元素区域重叠
  • 计算 BFC 的高度时,浮动子元素也参与计算
  • BFC 就是页面上的一个隔离的独立容器,容器里面的子元素不会影响到外面的元素,反之亦然

如何形成 BFC

  • 根元素:html
  • 浮动元素
  • overflow值为:hidden、auto、scroll
  • display值不为 none、block
  • position值为 absolute 或 fixed

应用场景:

  • 防止 margin 塌陷
  • 清除内部浮动:BFC 在计算高度时,将会把内部浮动元素的高度也计算在内
  • 自适应多栏布局

两栏布局的方式

第一种用 BFC,浮动,margin的方式:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        html,body {
            margin: 0;
            padding: 0;
            width: 100%;
            height: 100%;
        }
        #box {
            width: 100%;
            height: 100%;
            overflow: hidden;
        }
        .sidebar {
            float: left;
            height: 100%;
            width: 200px;
            background-color: aquamarine;
        }
        .content {
            margin-left: 200px;
            height: 100%;
            background-color: pink;
        }
    </style>
</head>
<body>
    <!-- 两栏布局 -->
    <div id="box">
        <div class="sidebar"></div>
        <div class="content">
        </div>
    </div>
</body>
</html>

第二种是使用 flex布局:

  • flex-grow属性定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。
  • flex-shrink属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。
  • flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。
  • flex属性是flex-grow, flex-shrinkflex-basis的简写,默认值为0 1 auto。后两个属性可选。
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        html,body {
            margin: 0;
            padding: 0;
            width: 100%;
            height: 100%;
        }
        #box {
            width: 100%;
            height: 100%;
            display: flex;
            align-items: flex-start;
        }
        .sidebar {
            width: 200px;
            background-color: lightblue;
            height: 100%;
        }
        .content {
            /* flex: 1; */
            flex-grow: 1;
            flex-shrink: 1;
            flex-basis: 0%;
            height: 100%;
            background-color: pink;
        }
    </style>
</head>
<body>
    <!-- 两栏布局 -->
    <div id="box">
        <div class="sidebar">Lorem ipsum dolor sit amet consectetur adipisicing elit. Cumque optio non dolore at itaque odit ullam unde facilis! Quibusdam debitis earum nobis, officiis eos natus consectetur vero recusandae expedita accusamus?</div>
        <div class="content">
            Lorem ipsum dolor, sit amet consectetur adipisicing elit. Debitis quaerat ipsa repudiandae corrupti. Quos, eum. Repellendus laborum aspernatur ab minima blanditiis commodi explicabo deleniti, sit aut iusto earum ipsum magnam.
        </div>
    </div>
</body>
</html>

第三种也是BFC,只是使自适应的那个容器化为 BFC

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .body {
            position: relative;
        }
        .aside {
            width: 100px;
            height: 150px;
            float: left;
            background: #f66;
        }
        .main {
            height: 200px;
            background: #fcc;
            overflow: hidden;
        }
    </style>
</head>
<body>
    <div class="body">
        <div class="aside"></div>
        <div class="main"></div>
    </div>
</body>
</html>

Artsmp avatar Feb 13 '22 03:02 Artsmp

每日任务

  • [x] leetcode打卡
  • [x] 上课
  • [x] TS类型体操

zhaocchen avatar Feb 13 '22 03:02 zhaocchen

每日计划 2022-02-13


重要的事

  • [ ] 核酸
  • [ ] 寄快递
  • [ ]

提升自己

  • [ ]

其他

xiaoxiayan avatar Feb 13 '22 03:02 xiaoxiayan

重要的事

  • [ ] 录制 apifox
  • [ ] 制作 Vue3 试听课的封面
    • 把 reactivity 的实现,放上去(大概有几集视频)

学习

  • [x] [[零基础学好英语语法]]
  • [x] 读书 - 营销
  • [ ] 自然拼读 Oo

生活

cuixiaorui avatar Feb 13 '22 03:02 cuixiaorui

image

CsongL avatar Feb 13 '22 06:02 CsongL

昨天完成

varlet nuxt3 文档 leetcode-69-x 的平方根 掘金 B站 leetcode-34-在排序数组中查找元素的第一个和最后一个位置 掘金 B站 leetcode-81-搜索旋转排序数组 II B站 面试题-事件循环 同步异步 阻塞非阻塞 串行并行 线程进程协程 thunk、gen、co、promise、async、await

今天要做

leetcode-979-在二叉树中分配硬币 leetcode-430-扁平化多级双向链表 leetcode-130-被围绕的区域 面试题-解释一下JS中的异步IO、回调、Eventloop

zhenyuWang avatar Feb 13 '22 14:02 zhenyuWang