前端
旺仔流奶
从现在开始努力也不算太晚
展开
-
『Promise』用reduce串行执行promise
Why Using reduce() to Sequentially Resolve Promises Works | CSS-Tricks - CSS-Tricks题目:使用Promise实现每隔1秒输出1,2,3const arr = [1,2,3];arr.reduce((pre,cur)=>{ return pre.then(()=>{ return new Promise((resolve, reject) => { .原创 2022-02-21 19:11:18 · 529 阅读 · 0 评论 -
【js】面试题
浏览器加载的步骤:onLoad & onReady - CodingWithAlice Blog浏览器环境下JavaScript脚本加载与执行探析之defer与async特性 - TracyLin - 博客园注意:await 其实是操作符,是等待Promise对象产出结果的操作手段,所以async 函数内,在await后面的操作其实等于被包装在then()中,会放在微任务队列中。...原创 2022-02-15 00:36:18 · 193 阅读 · 0 评论 -
Vue组件间通信的8种方式
1.常用的父子组件通讯方式:props,emit父组件传入属性,子组件通过props来接收,在子组件中就可以用this.xxx方式使用。子组件通过$emit(事件名,参数)向外弹出一个自定义事件,在父组件中的属性监听事件,可以获得子组件中传出来的值// 父组件<hello-world msg="hello world!" @confirm="handleConfirm"><hello-world>// 子组件 props: { msg: { t原创 2022-02-10 01:04:34 · 14392 阅读 · 0 评论 -
【实践】H5软键盘兼容方案
可能这些是你想要的H5软键盘兼容方案 | MonkeyBlog转载 2022-01-12 11:44:57 · 384 阅读 · 0 评论 -
【实践】微信小程序 new Date(‘YYYY-MM-DD‘) 失效
微信小程序 真机测试中 发现new Date('YYYY-MM-SS') 无效。需要将时间格式转化为 YYYY/MM/SS 才可以。new Date(time.replace(/-/g, '/')原创 2022-01-04 18:53:57 · 588 阅读 · 0 评论 -
【基础】js中的相等性判断
JS中相等性判断ES6版本中,四种相等判断的算法:全等: === 等于: ==零值相等: -0 === +0 同值相等: -0 !== +0 NaN === NaNJS中提供有关相等判断的方法1.严格相等 === Strict Equality2.非严格(抽象/非约束)相等 == Loose (自由的,不守限制的)Equality3.Object.is(v1,v2) ES6 ,判断两个参数是否是同一个值=== 严格相等不进行隐式类型转换 - 类型相原创 2021-12-28 15:35:29 · 2314 阅读 · 0 评论 -
【基础】浏览器渲染原理 + 理解回流和重绘
浏览器渲染过程:解析HTML,生成DOM树,解析CSS,生成CSSOM树 将DOM树和CSSOM树结合,去除不可见元素,生成Render Tree渲染树回流(Layout):根据生成的渲染树,进行回流,得到节点的几何信息(位置,大小) 重绘(Painting):根据渲染树以及回流得到的几何信息,得到节点的绝对像素。Display:将像素发送给GPU,展示在页面上。构建渲染树流程:从DOM树的根节点开始遍历每个可见节点。 对每个可见节点,找到CSSOM树中对应的规则..原创 2021-12-27 15:52:40 · 401 阅读 · 0 评论 -
【基础】了解 Babel
Babel: 实际上就是一个JavaScript的编译器,用来将ES6代码转换为浏览器或者其他环境支持的代码Babel 工作流程:大致分三步:Parser 解析源文件 Transform 转换 Generator 生成新文件引擎:acorn如何转化: 通过插件,Babel给每个新语法提供插件,在Babel里面配置什么插件,就转化对应的语法。插件命名形式:@babel/plugin-xxxBabel组成:@babel/preset-env最常用,包原创 2021-12-23 16:20:34 · 838 阅读 · 0 评论 -
【面试】 收藏
怎样判断面试者是否有扎实的前端基础? - 掘金在阿里我是如何当面试官的 - 掘金原创 2021-12-22 15:02:45 · 475 阅读 · 0 评论 -
【基础】了解webpack
webpack作用:模块打包。将不同模块的文件打包整合在一起,保证它们之间的引用正确,执行有序。利用打包,可以根据我们自己的业务自由划分文件模块,保证项目结构清晰可读。 编译兼容。利用webpack的loader机制,可以帮助我们对代码做polyfill,还可以编译转换.less,.vue等浏览器无法识别的格式文件,让我们在开发时可以使用新特性和新语法进行开发,提升效率。能力扩展。webpack的plugin机制,可以在实现模块打包和编译兼容基础上,进一步实现如代码压缩,按需加载等一系列功能。帮助我原创 2021-12-20 14:33:29 · 86 阅读 · 0 评论 -
实用工具插件
1.拖拽插件interact.jsvuedraggable2.原创 2021-12-16 17:17:10 · 202 阅读 · 0 评论 -
《图解HTTP》学习笔记
1.TCP/IP 分层分层管理好处:规定好接口协议,那么层次内部设计可以灵活改动。处于应用层之上的应用可以只考虑自己的任务,而不必担心底层传输。应用层 : 包含FTP,DNS,HTTP传输层 :包含TCP,UDP协议网络层 : IP协议(处理数据包,是网络传输的最小单位。链路层 :硬件部分每层处理时会进行封装,增加首部信息。状态码:2XX:成功请求被正常处理200 OK204 No Content (服务器接收请求成功处理,但是原创 2021-12-15 16:54:40 · 2687 阅读 · 0 评论 -
Vue3项目vue-cli快速搭建
vue-cli@4.5.4已经支持直接创建vue3项目,且支持ts1. 安装 vue clinpm install -g @vue/cli或者升级到最新版npm update -g @vue/cli // 升级vue-cli到最新版vue -V // 查看vue-cli版本2. 创建Vue3项目vue create my-project选择预设配置,我选择了手动,如果选择默认模式,一键就可以生成了~根据需求选择配置,我选择不使用ts最后进行确...原创 2021-09-15 11:58:14 · 127 阅读 · 0 评论 -
小程序骨架屏的几种方式
1.直接一张 骨架屏图片盖上去,当做loading页面2.前端写死一些div作为骨架3.页面Data中写死一些默认数据,将要生成骨架的div上加上骨架类。选择所有骨架节点,在页面中使用循环,遍历所有节点,再加上样式。(设置绝对定位,进行节点查询,找到所有需要骨架的类,并将他们的位置和大小记录,然后渲染出来h5端可以实现,但是在小程序端,无法跨组件找到所有需要渲染的类。 失败4.小程序端现在提供生成骨架屏的手段,通过修改一些配置来完成骨架屏https://...原创 2021-03-11 18:02:07 · 509 阅读 · 0 评论 -
微信浏览器 视频自动播放 解决方法
一进入页面单个视频开始自动播放可使用wx-sdk 中wx.ready() 可监听WeixinJSBridgeReady事件 //一般情况下,这样就可以自动播放了,但是一些奇葩iPhone机不可以 document.getElementById('car_audio').play(); //必须在微信Weixin JSAPI的WeixinJSBridgeReady才能生效 document.addEventListener("WeixinJSBridgeRe原创 2021-03-11 18:01:21 · 4055 阅读 · 1 评论 -
SEO优化
常见两种方案:1.服务端渲染 SSR2.预渲染预渲染方式:1.prerender-spa-plugin webpack插件,在项目构建时把项目按照路由打包成html静态文件。所以只有: 路由是静态的 + 页面内容是死的,不需要ajax请求的2.prerender: 如果内容需要ajax动态请求,可以使用prerender,通过无头浏览器渲染页面并返回html区别:1插件是在打包过程中渲染,只能渲染静态路由,2是在请求时渲染,可以渲染动态路由prerender...原创 2021-03-11 17:59:59 · 135 阅读 · 0 评论 -
vue click事件统一操作
目的:为了解决站外click事件需要进行统一操作——通过url Scheme来打开APP或者进入下载页,想对click事件进行拦截。解决思路:1.首先寻找vue的一些语法糖直接进行处理,比如使用事件修饰符,如@click.capture,这个修饰符是给元素添加监听器,当元素发生冒泡时,先触发带有这个修饰符的元素,如果有多个此修饰符,那么由外向内触发,想法是在最外层div进行操作,但是这个捕获的是所有点击事件,无论点击哪里都会捕获,而不是针对里面特定的@click,不能满足我们的要求。..原创 2020-08-07 11:20:20 · 673 阅读 · 0 评论 -
【前端学习】 浏览器滚动
设置全局滚动条高度1.window.scrollTo(0,0) 滚动到页面顶部window.scrollTo(x,y) 滚动到页面指定位置2.window.scrollBy(x,y) 相对滚动3.scrollTop来设置document.scrollingElement.scrollTop = 0;scrollTo()和scrollBy()的区别:scrollTo()是指...转载 2019-09-26 14:26:06 · 700 阅读 · 0 评论