CSS box-sizing属性到底改变的是什么? 我们都知道`box-sizing` 属性可以限制元素的宽、高,使其‘内敛’。那么你知道`box-sizing` 属性都有哪些值吗?对应的值都代表着那些含义吗?
前端如何mock数据 在工作中总会遇到,临近开发结束了后端才出接口,造成了前端的狼狈加班,搞不还要因此背锅。因此,我们前端一定要学会如何mock数据。什么是mock数据?mock数据就是我们接入交互逻辑用的假数据。当然,在开工之前,我们一定要先和后端确定好接口的数据格式,最好可以确定到字段。本文到此结束如果大家还有什么其他想法,欢迎在评论区交流!...
gitlab拉取项目报128 fatal: unable to access ‘xxx.git/‘ 昨天项目提测,今天上班领了几个bug,本以为都周四了,这周摸摸鱼就愉快的结束了。可是万万没想到啊!我正悠闲的改bug呢!领导就给我发RTX了,给我一个项目让我先熟悉熟悉🤨其实我们单位之前一直用的SVN,前两个月才改用的gitlab。安装好后单位就受口罩病影响一直是半放假状态,没用过。今天一试,果然没拉下来😅报错:git 未能顺利结束(退出码128) fatal: unable to access ‘xxx.git/’: Could not resolve host:gitlab.gttech.com?..
Vue3.x 中eventBus -- mitt用法 本文主要记录了Vue3中eventBus – mitt的安装、封装、用法以及核心原理。Vue3.x中移除了 、等自带的自定义事件相关方法,因此在vue3中推荐我们使用mitt事件总线传递数据,其实mitt的使用方式和vue原本的自定义事件使用方式相同。Mitt是一个体积极小的第三方消息发布/订阅式JavaScript库,React、Vue均可以使用。在项目的根目录下终端执行:在组件中使用安装好mitt后,直接引入mitt实例化后即可使用mitt;封装mitt在utils目录下,新建 mitt.js
浏览器渲染原理以及重排与重绘 HTML解析CSS解析样式与结构合并页面布局页面绘制第一阶段:HTML解析 --> DOM树浏览器不能够直接理解 HTML文档,首先对其进行解析,并在解析过程中发出页面渲染所需的各种外部资源请求生成DOM树。第二阶段: CSS解析 --> CSSOM树同样浏览器也办法直接理解 CSS 代码,需要将识别并加载的CSS 代码处理成自己理解的 CSSOM 树。第三阶段: 样式与结构合并 --> 渲染树浏览器将DOM 树和 CSSOM 树结合在一起生成渲染树(:after :before 等伪元素会在这个环节被构
使用Nodejs搭建本地静态服务器 在日常开发中,我们经常会在本地文件夹中直接打开HTML页面,一般都是file协议但当代码中存在http或https等外部资源时,HTML页面就无法正常打开,为了解决这个问题就需要搭建本地静态服务器。如果你知道怎么搭建本地静态服务器,自己用任何方式搭建都可以。如果不了解的话,建议使用nodejs去快速搭建一个本地静态服务器,因为它比较简单快捷。使用Nodejs搭建本地静态服务器,首先,查看Nodejs是否安装。在项目目录下,进入命令行窗口,输入 查看Nodejs的安装情况:返回正确的版本号,说明这台机器已
JavaScript 节流和防抖 本文主要记录了JavaScript 节流和防抖,节流和防抖本质上是优化执行高频率代码的一种手段。例如:浏览器的 、、 等事件在触发时,会不断地调用绑定的事件函数极大地降低了前端的性能。为了性能优化,需要对这类事件进行调用次数的限制,对此我们就可以采用 防抖(debounce) 和 节流(throttle) 的方式来减少调用频率。触发高频事件后n秒内函数只会执行一次,如果n秒内高频事件再次被触发,则重新计算时间。维护一个计时器,规定在delay时间后触发函数,但是在delay时间内再次触发的话,都会清除当
javascript如何手动抛出错误? 在javascript中通常使用抛出错误,语句用于抛出一个用户自定义的错误。例如:抛出了一个值为字符串的错误例如:抛出了一个错误对象语句用于抛出一个用户自定义的错误。当程序执行语句时,之后的语句将不会执行,如果调用者函数中没有块,程序将会终止。所以语句常常和语句一起使用。语句用于处理代码中可能出现的错误信息。try语句,执行可能发生错误的代码块。catch 语句,当 try 代码块发生错误时,所执行的代码块。finally 语句在 try 和 catch 之后无论有无异常都会执行。结合语句使用语句抛
JS实现页面快捷键功能 JS实现页面快捷键功能JS实现页面快捷键功能一共分为三步:第一步:绑定onkeydown事件;第二步:阻止默认按键功能;第三步:验证键码,调用功能函数;绑定事件首先,实现页面快捷键我们需要用到 onkeydown事件,onkeydown 事件会在用户按下键盘时触发。我们将其绑定到 window上:window.onkeydown。阻止默认功能然后,通过event.preventDefault() 方法阻止掉按键原有的功能,为我们绑定上新的功能做好准备工作。ps: 当然 event.
如何用for (var i=1; i<=5; i++) 加 setTimeout 输出1、2、3 、4、5 for (var i=1; i<=5; i++) 加 setTimeout 如何输出1、2、3 、4、5大家在笔试或者面试的时候,或多或少都做过这样的题吧!请问下面代码的输出是什么? for (var i=1; i<=5; i++) { setTimeout( function timer(){ console.log( i ); }, i*1000 ); } //输出 6
如何在老版本浏览器中丝滑地使用JS新特性(ES6) 如何在老版本浏览器中丝滑地使用JS新特性呢?如何在老版本浏览器中丝滑地使用JS新特性呢?有两种方法可以帮助我们实现:第一种方法就是我们用JS原有的方法,自己去实现JS的新特性😂;??? 不是说好的丝滑使用新特性吗,就这哈哈哈,别急!客官留步,我还有plan B😁咳咳咳,plan B 就是 把JS的新特性翻译成JS原有的方法😎纳尼,这是就你的 plan B 拿我🔪来大哥,别 别 别 !!!我这有工具可以直接翻译,包你丝滑!不爽不要钱😭这还差不多,先饶你一条小命,赶紧好好给大家说说怎么回事
ECharts 报错:Initialize failed: invalid dom 的解决思路 最近因为工作需要,用到了 ECharts 做图表,也遇到了这个问题,就来跟大家总结分享一下;其实不论你用的是原生还是 vue 甚至是其他框架,报 Initialize failed: invalid dom 的原因并不复杂;就是代码执行顺序的问题,在进行dom操作时,dom还没创建出来,或者直接就是你忘创建了????知道了报错的原因,解决办法就有很多了;原生的就直接把对应的 js文件引到dom后面就行了;vue 什么的有对应钩子的就放在对应的钩子里,没有的就用 promise;甚至可以直接简单