摘要: redux 工作流程 view->dispatch:action->store:dispatch方法里面自动调用reducer,生成新的state,store监听到state的变化就调用listener,更新view 阅读全文
posted @ 2020-09-12 19:58 xxcnhj 阅读(127) 评论(0) 推荐(0)
摘要: React diff算法 React通过引入虚拟dom的概念,避免了无效的dom操作,提高了dom的构建效率,为了高效的对比新旧虚拟dom树的异同引入了diff算法,react对diff算法进行了自己的优化,virtual Dom + diff; diff算法策略分为,tree diff,compo 阅读全文
posted @ 2020-09-12 19:57 xxcnhj 阅读(168) 评论(0) 推荐(0)
摘要: React的Key用来干嘛? 用于辅助react来追踪被增加,删除,移动的元素,同级元素的key必须具有唯一性 react在diff算法中,会根据key来判断某个元素是新增还是移动过来的,从而避免没必要的渲染 切记不要使用index,Math.random来作为元素的key。会造成额外的性能开销 阅读全文
posted @ 2020-09-12 19:55 xxcnhj 阅读(196) 评论(0) 推荐(0)
摘要: React的生命周期 在React 15.x版本或者之前的版本,生命周期只有三个阶段 在React 16.3之后新增了一个;有12个钩子函数,四个阶段分别为:初始化,运行中,销毁,错误处理 组件从创建到销毁的过程被称为组件的生命周期,通常分为三个阶段:挂载阶段,更新阶段,卸载阶段 Mounting: 阅读全文
posted @ 2020-09-12 19:54 xxcnhj 阅读(2531) 评论(0) 推荐(0)
摘要: 1.在回答这个问题之前,我们先来做一个假设; 如果setState是同步的,意味着每执行一次setState就会进行vnode diff+dom修改, 如果是异步,就可以把一个同步代码中的多个setState合并成一次组件更新; 2.setState什么时候是同步? 在setTimeOut或者原生事 阅读全文
posted @ 2020-09-12 15:22 xxcnhj 阅读(1034) 评论(0) 推荐(0)
摘要: b是为了加粗文字而加粗,样式 strong是为了强调而加粗 strong在一些设备上会重读,例如盲人阅读器; 在样式上strong跟b都可以加粗 阅读全文
posted @ 2020-08-08 21:16 xxcnhj 阅读(262) 评论(0) 推荐(0)
摘要: HTML5新特性 拖拽释放api(drag drop) 语义化标签 音频,视频元素(audio video) 画布(canvas) 本地存储localStorage,会一直保存,除非你删除 sessionStorageh会话存储,窗口关闭就销毁 GeoLocation 地理定位API 新的表单控件 阅读全文
posted @ 2020-08-08 21:14 xxcnhj 阅读(154) 评论(0) 推荐(0)
摘要: 减少dom元素的方法 1.使用伪元素,阴影实现的内容尽量不要使用dom元素,例如清除浮动,样式实现等 2.按需加载,减少不必要的元素 3.结构合理,语义化标签 大量的dom元素时优化: 1.缓存dom对象 let root = document.querySelector('a'); let chi 阅读全文
posted @ 2020-08-08 21:02 xxcnhj 阅读(1078) 评论(0) 推荐(0)
摘要: 分类: 1.内联元素 span i em a strong br input textarea display: inline; 和其他的内联元素在同一行从左到右排列,不可以直接操作宽高以及相关的css属性,可以设置内外边距的左右值,(marign,padding的左右值); 宽高由自身的内容的宽高 阅读全文
posted @ 2020-08-08 20:34 xxcnhj 阅读(771) 评论(0) 推荐(0)