摘要: 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。 简单的工厂模式可以理解为解决多个相似的问题;这也是她的优点;比如如下代码: function CreatePerson(name,age,sex) { var obj = new Obje 阅读全文
posted @ 2021-12-29 17:01 秋墨江雪 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 使用React框架时,可以从两方面提高应用的性能: 减少不必要的Render函数的调用。 复用Dom 减少不必要的Render函数的调用 在React的生命周期里有四种方式可以触发一个组件render函数的调用,分别是: 1. 组件初始挂载时 2. props 更新时 3. 调用 setState( 阅读全文
posted @ 2021-12-29 11:20 秋墨江雪 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 算法策略 单节点diffing 数组节点diffing key值的使用要求 算法策略 React的调和算法,主要发生在render阶段,调和算法并不是一个特定的算法函数,而是指在调和过程中,为提高构建workInProcess树的性能,以及Dom树更新的性能,而采用的一种策略,又称diffing算法 阅读全文
posted @ 2021-12-29 11:08 秋墨江雪 阅读(163) 评论(0) 推荐(0) 编辑
摘要: mouseenter 和 mouseleave 是一对事件,分别指鼠标移入和离开当前元素, 这两个事件不冒泡; mouseover 和 mouseout 是一对事件,指鼠标移入和离开元素,但是这个两个事件是冒泡,也就是说,鼠标移入或离开当前元素的子元素时,事件会冒泡到当前元素,当前元素的事件会被触发 阅读全文
posted @ 2021-12-29 10:51 秋墨江雪 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 你可能错过这些非常有用的技巧。 我们知道,JavaScript 这门语言正在高速发展中。伴随着 ES2020,又有很多很棒的功能加入。老实说,您可以通过许多不同的方式编写代码。实现同样一个功能,有的代码很长而有的却很短。你可以通过一些小技巧来让你的代码更干净清晰。下面这些小技巧肯定对你接下来的开发工 阅读全文
posted @ 2021-12-29 10:27 秋墨江雪 阅读(101) 评论(0) 推荐(0) 编辑
摘要: 例:http://localhost:8000/#/index/cardinfo?_k=0wnq36 1、window.location.href(设置或获取整个 URL 为字符串) var integrityurl = window.location.href;console.log(integr 阅读全文
posted @ 2021-12-29 09:51 秋墨江雪 阅读(206) 评论(0) 推荐(0) 编辑
摘要: git 使用第一步是用 git add 把文件添加进去,实际上就是把文件修改添加到暂存区;第二步是用 git commit 提交更改,实际上就是把暂存区的所有内容提交到当前分支; 当我们用 git add 把某些文件提交到暂存区之后,突然发现一个文件原本不需要这次被 add 进去,这要怎么做呢? g 阅读全文
posted @ 2021-12-29 09:48 秋墨江雪 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 防抖和节流是针对响应跟不上触发频率这类问题的两种解决方案。 在给DOM绑定事件时,有些事件我们是无法控制触发频率的。 如鼠标移动事件onmousemove, 滚动滚动条事件onscroll,窗口大小改变事件onresize,瞬间的操作都会导致这些事件会被高频触发。 如果事件的回调函数较为复杂,就会导 阅读全文
posted @ 2021-12-29 09:39 秋墨江雪 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 应用场景 在进行窗口的resize、scroll,输入框内容校验等操作时,如果事件处理函数调用的频率无限制,会加重浏览器的负担,导致用户体验非常糟糕。此时我们可以采用debounce(防抖)和throttle(节流)的方式来减少调用频率,同时又不影响实际效果。 函数防抖 函数防抖(debounce) 阅读全文
posted @ 2021-12-29 09:32 秋墨江雪 阅读(449) 评论(0) 推荐(0) 编辑
摘要: 今天遇到一个新的需求,点击按钮查看图片,且图片能放大缩小。如下图: 想到了使用element-ui的el-image组件,官网示例: <div class="demo-image__preview"> <el-image style="width: 100px; height: 100px" :sr 阅读全文
posted @ 2021-12-29 09:22 秋墨江雪 阅读(4855) 评论(0) 推荐(0) 编辑
摘要: JSON.parse(JSON.stringify(obj))我们一般用来深拷贝,其过程说白了 就是利用JSON.stringify 将js对象序列化(JSON字符串),再使用JSON.parse来反序列化(还原)js对象;序列化的作用是存储(对象本身存储的只是一个地址映射,如果断电,对象将不复存在 阅读全文
posted @ 2021-12-29 09:15 秋墨江雪 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 将两个对象合并起来,组合成一个对象。 使用Object.assign()方法。 <script> var obj1 = {name:'小A',sex:'女'}; var obj2 = {age:'30',job:'程序猿'}; Object.assign(obj1,obj2); console.lo 阅读全文
posted @ 2021-12-29 09:08 秋墨江雪 阅读(964) 评论(0) 推荐(0) 编辑
摘要: 分析工具Coverage:查看代码的使用状况移除死代码懒加载代码webpack-bundle-analyzer:查看资源树 1. productionSourceMap:false 2.路由懒加载 3. 关闭Prefetch 4.element-ui组件按需加载 5.使用 CDN 外部加载资源-vu 阅读全文
posted @ 2021-12-29 09:06 秋墨江雪 阅读(1431) 评论(0) 推荐(0) 编辑
摘要: 背景 在写测试平台首页时,我想要在echarts的柱状图的点击事件中实现路由跳转功能,而直接使用this.$router.push()会报错:Uncaught TypeError: Cannot read property 'push' of undefined 解决遇到的坑 首先我想到是否可以通过 阅读全文
posted @ 2021-12-29 08:49 秋墨江雪 阅读(548) 评论(0) 推荐(0) 编辑