Open cuixiaorui opened 2 years ago
(该模板使用ch3cknull/auto-issue-comment自动生成)
nextTick 的原理就是它会维护一个更新数据改变视图操作的队列,他不会说是你一变化他就立即更新的,而是等待同一事件环中的所有数据变化完成后再执行更新,而我们传递给 nextTick 的那个回调则会在这个队列的最后被执行,所以它其实是时一种优化策略,减少性能的损耗。
Array.from:将两类对象转为真正的数组 --> 类数组对象和可遍历的对象(Map,Set)。并且它还接收第二个参数用来对每个值进行处理,将返回值放入新的数组中
Array.of:用于将一组值转为数组
BFC
目的是形成一个相对于外界完全独立的空间,让内部的子元素不会影响到外部的元素
BFC 的渲染规则:
如何形成 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-shrink
和 flex-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>
如何写每日任务