自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 webpack一篇

当我们习惯了在node中编写代码的方式后,在回到前端编写html、css、js这些东西会感觉到各种的不便。比如:不能放心的使用模块化规范(浏览器兼容性问题)、即使可以使用模块化规范也会面临模块过多时的加载问题。我们就迫切的希望有一款工具可以对代码进行打包,将多个模块打包成一个文件。这样一来即解决了兼容性问题,又解决了模块过多的问题。构建工具就起到这样一个作用,通过构建工具可以将使用ESM规范编写的代码转换为旧的JS语法,这样可以使得所有的浏览器都可以支持代码。

2025-03-03 23:49:40 848

原创 CSS常见手写题汇总(一) 两栏布局、三栏布局、垂直居中

父级元素设置左右的 padding,三列均设置向左浮动,中间一列放在最前面,宽度设置为父级元素的宽度,因此后面两列都被挤到了下一行,通过设置 margin 负值将其移动到上一行,再利用相对定位,定位到两边。然后给每个盒子设置固定的宽高,为了让他换行,可以使用float来实现,由于子元素的浮动,形成了BFC,所以父元素ul使用overflow:hidden;利用绝对定位,设置四个方向的值都为0,并将margin设置为auto,由于宽高固定,因此对应方向实现平分,可以实现水平和垂直方向上的居中。

2025-02-12 08:30:00 2142

原创 CSS(四)一篇搞定Sass

Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如Compass)有助于更好地组织管理样式文件,以及更高效地开发项目。

2025-02-07 19:47:54 401

原创 CSS(三)less一篇搞定

我们写了这么久的CSS,里面有很多重复代码,包括通配颜色值、容器大小。那我们能否通过js声明变量来解决这些问题?原生的css不支持,但less支持。css预处理器为css增加一些编程特性,无需考虑浏览器的兼容问题,可以在CSS中使用变量,简单的逻辑程序,函数等在编程语言中的一些基本的性能,可以让css更加的简洁,增加适应性以及可读性,可维护性等。浏览器不认识less,写的less代码,需要编译成css让浏览器识别。再项目,通常我们都是用预处理语言。

2025-02-06 22:40:27 1283

原创 CSS布局(二)grid一篇搞定

grid-area 属性是 grid-row-start, grid-column-start, grid-row-end 以及 grid-column-end 属性的简写。grid-column 是 grid-column-start 和 grid-column-end 属性的简写属性。grid-template-columns 属性定义了网格布局中的列的数量,它也可以设置每个列的宽度。grid-row 是 grid-row-start 和 grid-row-end 属性的简写属性。

2025-02-06 15:56:18 2582

原创 CSS布局(一)flex一篇搞定

.box{.item{</div>

2025-02-04 21:54:53 792

原创 Node(三)koa一篇搞定

就是中间件根据碰到next就去下一个中间件执行 当执行完最后一个中间件再回来执行倒数第二个中间件next函数后面的代码。重点是两个第三方解析库koa-bodyparser、@koa/multer。express执行异步代码。

2025-01-26 16:33:18 823

原创 Node(二)express一篇搞定

​// 1.创建express服务器res.end('登录成功')})res.end('数据列表')})//2.打开服务器console.log('8000端口对应的服务器打开成功')})

2025-01-21 21:15:35 1133

原创 Node(一)fs模块、events模块、 Buffer类使用、Stream的使用

如果要存的大于4kb就会要os分配跟它一样大的 如果小于4kb就申请8kb。// 1.创建Buffer Buffer是一个数组 每个位置存一个字节。字节概念: 1byte = 8bit/ 1kb/1M/1G。// 每个字节用1进制标志 就是4个二进制为一个十六进制。// 默认编码和解码都是utf-8 中文占3个字节。处理二进制的内容使用Buffer。8*1024字节大小的空间。

2025-01-16 20:20:05 843

原创 Git从零到进阶(结合codewhy)

基础的命令: (必须掌握)​git add .​git push进阶的命令:maindevelopfeature# 1.检查服务器是否有origin/develop这个分支# 2.创建一个本地的develop分支# 3.让本地的develop分支自动跟踪origin/develop# 4.切换到develop分支​git add .git pullgit push高级的命令:git tag​​git rebase。

2024-10-26 20:26:12 664

原创 Vue3(生命周期、自定义hook、toref和torefs、组合式API、新组件)

什么是hook?—— 本质是一个函数,把setup函数中使用的Composition API进行了封装。类似于vue2.x中的mixin。自定义hook的优势: 复用代码, 让setup中的逻辑更清楚易懂。

2024-10-22 15:53:42 2231

原创 Vue3(ref,reactive,setup,computed,watch,watchEffect)

vue2的响应式只有get和set,直接增加属性和删除属性不能得到响应式,要用到this.$set(对象,属性名,值)或者Vue.set()来获得响应式以及this.$delete和Vue.delete,很麻烦。- 语法:const 代理对象= reactive(源对象)```接收一个对象(或数组),返回一个代理对象(Proxy的实例对象,简称proxy对象)监视对象里的一个属性,必须写成一个箭头函数进行返回,要不然就是死的值,无法进行监视,如果你监视的还是一个对象,必须手动开启深度监视。

2024-10-21 21:41:41 1081

原创 Promise超详细(含手撕)

如果回调函数返回的不是promise,则then返回的promise的状态为成功,值是回调函数返回的值(没有就是undefined)。只要有一个失败返回的就是一个失败的promise对象,属性值为失败的那个promise的属性值。的结果状态就是最终的结果状态,race赛跑的意识,相当于数组里的promise进行赛跑,谁的状态先改变,race函数的返回结果状态和属性值就看它。传入一个数组,若p1、p2、p3都是一个成功的promise对象则函数返回一个新的成功的promise对象,且属性值为。

2024-09-18 14:39:39 1011

原创 Vue详解(四)

子组件 ===> 父组件事件的回调在A中

2024-09-04 12:47:43 982

原创 Vue详解(三)

状态提升

2024-08-30 09:56:01 1054

原创 Vue2详解(二)

v-bind : 单向绑定解析表达式, 可简写为 :xxxv-model : 双向数据绑定v-for : 遍历数组/对象/字符串v-on : 绑定事件监听, 可简写为@v-if : 条件渲染(动态控制节点是否存存在)v-else : 条件渲染(动态控制节点是否存存在)v-show : 条件渲染 (动态控制节点是否展示)v-text指令:1.作用:向其所在的节点中渲染文本内容。2.与插值语法的区别:v-text会替换掉节点中的内容,{{xx}}则不会。

2024-08-29 15:22:59 3271

原创 Vue2详解(一)

动态构建用户界面的渐进式JavaScript 框架2.Vue的特点初识Vue:1.想让Vue工作,就必须创建一个Vue实例,且要传入一个配置对象;2.root容器里的代码依然符合html规范,只不过混入了一些特殊的Vue语法;3.root容器里的代码被称为【Vue模板】;4.Vue实例和容器是一一对应的;5.真实开发中只有一个Vue实例,并且会配合着组件一起使用;6.{{xxx}}中的xxx要写js表达式,且xxx可以自动读取到data中的所有属性;

2024-08-28 23:55:43 2362

原创 JS进阶篇(提高)

原来把方法写在构造函数里存在的问题:内存浪费,因为没创建一个实例对象,就有会内存中分配一次空间给function,因此引出了原型prototype,把对象的公共方法放在prototype下,那么分配一次,每次创建实例对象都会去prototype下找这个方法。,它指向构造函数的prototype,构造函数的prototype也是一个对象有__proto__属性,指向Object的prototype,Object的prototype是一个对象有__proto__属性,指向null。

2024-08-19 22:35:23 909

原创 JS之DOM(含BOM)的详细操作(下)

JSON.parse(localStorage.getItem('obj')) 将JSON格式转化为对象,如果里面的JSON参数来自数组的 JSON 数据,则 JSON.parse 会将其转换为 JavaScript 数组,其他就是单个对象。因为1111和3333的代码先进入执行栈,2222的代码进入任务队列(消息队列),等执行栈的代码执行结束,去看消息队列中是否有任务处理完毕,有的话加入执行栈去执行,执行完再去看消息队列,一直重复,重复的过程叫事件循环。1. 先执行执行栈中的同步任务。

2024-08-16 13:55:45 618

原创 JS之DOM的详细操作(上)

给一些标签自定义一些属性,一定要一data-开头获取自定义属性:先获得标签对象,如何.dataset获得一个自定义属性Map对象(集合包含了所有自定属性) 再.具体的属性名set获得的map对象。

2024-08-12 23:58:28 1813

原创 JS基础的重难点

let key in obj ,key获得的是带引号的属性名即字符串 如果用点形式obj.k结果是undefined因为相当于obj.'uname' 而我们用点形式获取属性值是没有引号的。但用[]形式获取属性值是必须要引号的,所以有了下面的代码。先写俩个() 第一个括号是让函数先声明,第二个括号执行函数,多个立即执行函数之间一定要加逗号 一种写法:(function(){})() 第二中写法:(function(){}()) 第二个括号写实参,第一个括号写形参。prompt()得到的都是字符串类型。

2024-08-09 20:30:01 360

原创 css之盒子模型详解篇

display属性visility属性overflow属性。

2024-08-01 23:04:05 286

原创 基本CSS的使用这篇就够了

写链接伪类的时,最好上面的顺序依次写。顺序错了可能导致一些问题。lvha简单记住这个4个字母。a:link //未访问的链接 a:visited //已访问的链接。a:hover //鼠标移动到链接上 a:active //选定的链接。多类名的情况:就是给一个标签设置多个class名,这几个名字都可以定位到此标签。一般写在<head></head>标签的<style></style>中。选择器的作用就是找对标签即定位的作用。把某一类标签全部选出来如上面的h3;谷歌浏览器默认16px。

2024-07-31 23:42:22 413

原创 HTML5各标签的使用

html的使用

2024-07-07 16:58:25 345

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除