calc()计算宽高
flex 一维布局
display-flex flex-direction flex-wrap justify-content主轴对其方式 align-items 交叉轴的对其方式 align-content
grid 二维布局
display-grid(默认一列) 指定行-grid-template-columns: 100px 2fr 1fr 默认值-grid-auto-columns 指定列-grid-template-columns:100px 100px 100px; 便捷-repeat(12,50px)-十二列-宽度50px 等分父元素-(1fr 2fr 3fr)
子绝父相
js匿名函数:
无名称函数,es6中包括箭头函数 箭头函数: 1.简洁,对函数参数不限制,可以省略一些括号 2.没有自己的this,继承上一层作用域的this,this指向不会改变 3.没有原型链 4.call() bind() apply()不能改变指向 5.不能当构造函数用 6.没有自己的arguments
数据类型
for of & for in
数组: for in 是数组键名,for of 是数组元素值 对象: for of 是es6新增,遍历获取对象键值,for in 遍历获得键名 for in 会遍历对象的原型链,性能差。for of 遍历对象不会遍历原型链
let const var
1.var不具有块级作用域,剩下两个具有。计数的循环变量泄漏,内层变量覆盖外层 2.变量提升:var存在,剩下两个不存在。 5.暂时性死区:变量未声明前不可用,var则可以 3.重复声明: var存在会覆盖,const,let不允许 4.给全局添加变量:var变量是全局的会添加为全局对象的属性,let,const不会 6.初始值,const必须有 7.指针指向:let可以重新赋值,const不可以(地址不可变)
new
1.创建一个对象 2.将这个对象的隐式原型指向构造函数的显示原型 3。构造函数中的this指向该对象。 4.返回新对象
react
特点:虚拟dom,组件化开发,jsx,单向数据流 组件通讯: 父向子:props 子向父:回调函数-父组件给子组件传递一个函数,子组件调用 跨级组件:context
react 类生命周期
挂载 更新 卸载 constructor() render() componentDidMount() componentDidUpdate() componentWillUnmount()
函数的生命周期
useEffect()-一个hook,给函数组件加入操作副作用能力。告诉react组件需要在渲染之后执行某些操作,每次useEfect时DOM已经更新完毕 useMemo()-防止父组件状态更新,子组件也会更新。只有传入的第二个参数改变才会渲染。-返回结果 useCalback()-返回函数,和useMemo相似。 useRef()-获取对应元素相关属性 useUpdate()-强制更新 useState()
vue和react区别
共同点1.数据驱动视图,2.组件化 3.使用虚拟dom 不同点:思想不同,一个降低门槛,一个推崇函数式编程。组件写法不同,diff算法不同。响应式数据不同