摘要: 技术: 1、vue: slot插槽:动态渲染不同组件,可接收参数与组件进行通信 provider/inject依赖注入(类似react中的context,可以多层级子组件数据共享) 局部注册component,父组件引入子组件 2、vuex数据状态管理 action:通过dispatch触发 mut 阅读全文
posted @ 2021-03-10 17:51 happyYawen 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 背景: Js语言采用的是单线程模型 随着计算机能力增强,多核CPU的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力 Web Worker的作用: 为Javascript创造多线程环境,允许主线程创建Worker线程,将一些任务分配给后者运行 主线程运行的同时,Worker线程在后台运行,两 阅读全文
posted @ 2021-01-25 11:21 happyYawen 阅读(282) 评论(0) 推荐(0) 编辑
摘要: /** * instanceof的用途 * 用来判断一个对象实例的类型是否是某构造函数 * 也可以用来判断对象实例是否属于其原型链上的祖先类型 * instanceof的原理 * 就是左侧的参数实例的__proto__属性 沿着原型链一直往上延伸查找每一个原型 是否与右侧的参数的原型相等 */ fu 阅读全文
posted @ 2021-01-08 15:32 happyYawen 阅读(538) 评论(0) 推荐(0) 编辑
摘要: react-router 中hash模式和history模式。 最直观的区别就是在url中hash 带了一个 # ,而history是没有#的。 HashRouter原理=>window.onhashchange监听,{ Provider, Consumer } = React.createCont 阅读全文
posted @ 2021-01-08 15:18 happyYawen 阅读(1098) 评论(0) 推荐(0) 编辑
摘要: 备案系统前端 单元测试总结 背景: 备案系统,逻辑复杂,表单数据繁多,测试不充分,导致线上问题较多。 出现问题较多的大致分类: 测试不充分,边缘情况(线上特殊例子)没考虑到,例如:空值判断、字段校验中的正则表达式覆盖不全面(比如 域名后缀)等 备案类型多,功能相似,逻辑相同点有多处,修改处容易遗漏, 阅读全文
posted @ 2021-01-04 17:02 happyYawen 阅读(390) 评论(0) 推荐(0) 编辑
摘要: #浏览器窗口输入一个url的过程 输入一个url的请求,例如:http://console.ucloud.cn:80/icp 1)浏览器解析出主机名: console.ucloud.cn 2)浏览器查询这个主机的IP地址(DNS解析) 43.227.197.201 3)浏览器获得端口号80 4)浏览 阅读全文
posted @ 2020-12-18 12:42 happyYawen 阅读(419) 评论(0) 推荐(0) 编辑
摘要: React方面: 1、首屏渲染:Webpack的 new HtmlWebpackPlugin 配置loading模版 2、简单的子组件,尽量使用函数方式,不需要继承Component实例化,就没有生命周期函数了,减少内存占用。 减少render次数: 3、子组件使用PureComponent(针对c 阅读全文
posted @ 2020-12-18 12:25 happyYawen 阅读(74) 评论(0) 推荐(0) 编辑
摘要: jsonp跨域 由于 web 页面上调用 js 文件不受浏览器同源策略的影响,所以通过动态创建script标签的方式进行跨域请求, 主要原理就是在script的src上,接口url+callback回调函数名称+其他参数。callback是服务端约定好的回调函数,你也可以叫其他名字。 当服务端接收到 阅读全文
posted @ 2018-08-10 15:26 happyYawen 阅读(211) 评论(0) 推荐(0) 编辑
摘要: var arr = [1,2,3,4,1,2,3,4,5,6,3,2] /*es6的set特性*/ [...new Set(arr)] /*思路:将数组转化为key:value的Object类型, key和value都是数组当前项 利用Object的key重复赋值会覆盖前面的值的特性*/ var obj = {}; for(item of arr){ obj[item] = item; }... 阅读全文
posted @ 2018-08-06 11:39 happyYawen 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 时间控件打开时,会调用到手机键盘 解决方案,监听focus事件,当触发时,执行this.blur() 原生js获取元素高度 //获取盒子的内容高度,内容高度也可用用box.clientHeight获取,内容高度不包括边框和外边距和滚动条 var box = document.getElementBy 阅读全文
posted @ 2018-07-25 16:44 happyYawen 阅读(422) 评论(0) 推荐(0) 编辑